Hướng dẫn route function in php
Xin chào anh em, tiếp tục series Laravel và những điều thú vị về nó thì hôm nay mình muốn giới thiệu đến anh những kiến thức liên quan đến Route. Nếu như khi mình làm một project bằng PHP thuần thì chúng ta sẽ sử file htaccess dùng để cấu hình máy chủ apache , tức là khi người dùng đánh đường dẫn trên browser thì đường dẫn đó sẽ map trong file htaccess để điều hướng đến các page của trang web. Nhưng trong Laravel thì Show 1.Cấu trúc thư mụcThì để viết 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. 2.Cơ bản về RouteBây giờ chúng ta thử mở file routes/web.php lên để viết thử 1 Route xem nó chạy thử như nào nhé.
Bây giờ chúng ta gõ đường link Các phương thức trong RouteThì mặc định route sẽ hỗ trợ các phương thức như sau:
Trong đó $url: đường dẫn route và $callback : là một hành động nào đó sẽ được thực hiện để trả về. Tham số tùy chọnNhiề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 ID của user từ URL, chúng ta có thể viết route như sau:
Ngoài ra chúng ta cũng có thể truyền nhiều tham số trong URL
Tên RouteTên routes cho phép chúng ta thuận tiện hơn khi chuyển hướng các route cụ thể. Chúng ta có thể đặt tên route bằng cách thêm
Hoặc ngoài ra chúng ta cũng có thể chỉ định tên route cho controller.
Sử dụng helper route()Khi chúng ta đã đặt tên route trong phần định nghĩa route ở trên, chúng ta cũng có thể lấy đường
dẫn bằng helper Khi route được đặt tên và có tham số trên đường dẫn thì chúng ta sẽ sẽ truyền tham số vào trong hàm helper
$url = route('users.detail', ['id' => 10]); Nhóm RouteNhiều khi những route có chung hành vi thì chúng ta sẽ nhóm route vào.
Ở trên chúng ta thấy xuất hiện NamespacesNamespace trong Laravel giông như PHP namespace được chỉ định với một nhóm controller.
PrefixChúng ta zét ví dụ sau
Các bạn có thấy đặc điểm chung của các route trên không, nó đều bắt đầu bằng admin vì thể để viết gọn lại các URL thì chúng ta sẽ sử dụng
3.Route Model BindingQua các ví dụ trên chắc hẳn bạn cũng hiểu được phần nào về các thành phần cơ bản của route. Chúng ta cùng xét ví dụ nhé
Implicit BindingTrong Laravel thì nó sẽ có hỗ trợ tự động giải quyết gợi ý Eloquent models được xác định bên trong route hoặc controller có tên biến phù hợp với tên segment.
Giải thích tí chỗ này nhé: Trong ví dụ trên, Eloquent đã gợi ý biến $post định nghĩa trong route phù hợp với {post} segment trong URL, Laravel tự động đẩy các model Post có ID phù hợp với giá trị tương ứng từ URL. Nếu không tìm thấy trong CSDL của bạn thì nó sẽ trả về lỗi 404 HTTP. Explicit BindingĐể đăng ký một explicit binding, sử dụng phương thức model để xác định class cho một than số. Các bạn nên định nghĩa explicit bindings bên trong phương thức
Trong file web.php định nghĩa một route
Khi chúng ta rằng buộc tham số {post} trong model App\Post, một instance của Post sẽ được inject vào route. Vì vậy ví dụ như một request đến admin/1 sẽ được hiểu như là lấy ra bài post có id = 1. Nếu instance model không tìm thấy trong CSDL, một response 404 HTTP sẽ tự động được sinh ra. Chú ý.Nếu mà chúng ta tạo bảng mà có khóa chính khác với
4. FormNếu như bạn không dùng
5.Kết luậnVừa rồi thì mình cùng với các bạn tìm hiểu những cái cơ bản nhất về route, nó có thể giúp các bạn mường tượng cách sử dụng route như thế nào. Mình xin kết thúc bài viết ở đây, mọi thắc mắc gì hãy comment phía dưới bài viết cho mình nhé !! 6.Tham khảohttps://laravel.com/docs/5.6/routing https://laravel.com/docs/5.6/helpers#method-route |