Laravel 02 : Tìm hiểu về Route trong laravel

Chào mọi người hôm nay chúng ta sẽ nói về route trong laravel. Trước khi nói về route chúng ta phải biết khi chúng ta gõ địa chỉ trên trình duyệt. VD : thaygiaoquocdan.vn . Thì DNS( Domain Name System ) sẽ chuyển tên mền thành địa chỉ ip và gửi yêu cầu đến server . Phía server sẽ nhận đường dẫn đó và thực thi 1 function( hành động) để  render lại 1 trang html tương ứng .

Route là gì?

Đúng như tên gọi của nó. Route thực hiện chức năng định tuyến cho những đường dẫn(URL) tới 1 function() hành động giúp server đưa ra những thông tin mà người dùng cần

Ví dụ bạn có 1 trang web thể hiện danh sách “Sinh Viên” sống tại “Hà Nội”:

http://thaygiaoquocdan.vn/Sinhvien.php?address=Hanoi

Thay vì 1 đường dẫn khá rườm rà ta có thể dùng route trong laravel để giúp đường dẫn Đẹp hơn.

http://thaygiaoquocdan.vn/Sinhvien/Hanoi

Đương nhiên đường dẫn đẹp thì có lợi cho người dùng, rất hiệu quả về mặt marketing cũng như SEO.

Cấu trúc thư mục

Khi muốn tạo các Route trong Laravel thì chúng ta sẽ viết trong routes/web.php – định nghĩa các route cho web.

Còn routes/api.php – để định nghĩa route cho api.

Các phương thức laravel hỗ trợ

Ở đây $uri là đường dẫn , $callback là  hành động (function) Cần thực hiện tương ứng với đường dẫn đó.

Nhưng ở đây chúng ta sẽ đề cập đến những phương thức thường xuyên sử dụng đó là get,post

Cơ bản về route

Bây Giờ chúng ta có thể mở  routes/web.php và thử tạo 1 url là ‘xin-chao’

Bây giờ chúng ta Bật Xampp sau đó mở trình duyệt gõ http://localhost/Thaygiaoquocdan/public/xin-chao

Trong đó http://localhost/Thaygiaoquocdan/public/ đóng voi trò là tên miền mà chúng ta mua. Ở buổi cuối mình sẽ hướng dẫn các bạn upload web lên hosting

VD: tên miền của bạn là thaygiaoquocdan.vn

lúc đó thay vì gõ :http://localhost/Thaygiaoquocdan/public/xin-chao các bạn chỉ cần gõ :  thaygiaoquocdan.vn/xin-chao   thui nhé!

Truyền tham số trên Route

Nhiều khi chúng ta sẽ cần truyền tham số trên đường dẫn, chúng ta cũng có thể truyền trong route

Ví dụ,chúng ta cần lấy giá trị của biến ‘ten’ được truyền trên URL, chúng ta có thể viết route như sau:

route là gì

Và đương nhiên nó cũng hỗ trợ truyền nhiều tham số trên route:

Đôi khi bạn muốn tạo tham số mặc định cho route .khi trên đường dẫn  không truyền giá trị của biến bằng cách thêm dấu ‘?’ phía sau ‘Tên biến’  trên đường dẫn (‘Tên biến’ không có $ nhé! – Rất nhiều bạn hay bị nhầm ).

Ở đây chúng ta sẽ không truyền biến ‘namsinh’

route trong laravel

Nhiều bạn sẽ hỏi là thế giờ tôi chỉ truyền giá trị cho biến ‘namsinh’, còn biến ‘ten’ em bỏ trống được không?

Do đường dẫn có 2 dấu // lên trình duyệt sẽ không hiểu được.

Kiểu như này:

Nhưng nếu chúng ta truyền cả 2 tham số mặt định trên route thì được nha

Ràng buộc biểu thức chính quy

Trong trường hợp bạn muốn tham số phải thoả mãn điều kiện nào đó . Mới được phép thực thi function . Bạn có thể cân nhắc đến tạo rằng buộc cho tham số truyền vào:

Trong đó ‘[A-Za-z]+’ là Regular Expression (Biểu thức chính quy)  https://regexr.com/

Ý nghĩa  ‘[A-Za-z]+’ : tham số truyền vào phải là chuỗi thuộc A->Z và a->z

‘[0-9]+’ : tham số truyền vào chỉ được phép chứa số tư 0->9

Còn với nhiều tham số:

Trên đây là kiến thức căn bản về route trong laravel. Chúc mọi người học tập tốt!