Laravel 5.7 Callable Action URLs
Để bắt đầu một website Laravel, chúng ta phải định nghĩa các routes cho website và khi số lượng routes bắt đầu nhiều lên thì việc quản lý bắt đầu phức tạp dần. Nhất là khi ở ngoài view chúng ta phải sinh (generate) url ở nhiều nơi.
Laravel cung cấp các phương thức generate route như: url()
, route()
, action()
. Trong đó url và route có lẽ là 2 thứ anh em xài nhiều nhất nhỉ. Chung nói qua một chút về generate route bằng phương thức action()
helper này nhé.
Giả sử bạn định nghĩa 2 route sau:
// không có parameter
Route::get('/posts', 'PostsController@index');
// có parameter
Route::get('/posts/{slug}', 'PostsController@show');
Như vậy chúng ta sẽ có 2 url ngoài web như sau:
// không có parameter
https://chungnguyen.xyz/posts
// có parameter
https://chungnguyen.xyz/posts/laravel-5-7-callable-action-urls
Để generate 2 url trên bằng phương thức action()
phiên bản Laravel 5.6 trở về trước ta làm như sau:
// không có parameter
$url = action('PostsController@index');
// có parameter
$url = action('PostsController@show', ['slug' => 'laravel-5-7-callable-action-urls']);
Ở phiên bản Laravel 5.7 sẽ có 1 sự thay đổi, ta có thể gọi nó là "callable array syntax" (cú pháp mảng có thể gọi) như sau:
// không có parameter
$url = action([PostsController::class, 'index']);
// có parameter
$url = action([PostsController::class, 'show'], ['slug' => 'laravel-5-7-callable-action-urls']);
Một lợi ích của định dạng "callable array syntax" mới là khả năng điều hướng trực tiếp đến Controller nếu bạn sử dụng trình soạn thảo văn bản hoặc IDE hỗ trợ điều hướng mã (code navigation).
Bạn có thể tìm thấy nó trong tài liệu sắp tới để tạo URL và nếu bạn quan tâm đến các thay đổi code được thực hiện để hỗ trợ tính năng này, bạn có thể checkout pull request này 5.7 Tuple notation for UrlGenerator actions.
Tham khảo: laravel-news
Ủng hộ Chung Nguyễn Blog
Chung Nguyễn Blog sử dụng FlashVPS - Dịch vụ quản trị máy chủ chuyên nghiệp để quản lý VPS
#FlashVPS là dịch vụ cloud panel trên nền tảng web hỗ trợ khách hàng:
- * Quản lý máy chủ số lượng nhiều
- * Không có kinh nghiệm quản lý máy chủ
- * Thích sử dụng giao diện web đơn giản, trực quan hơn terminal
- * Quá nhàm chán với việc ghi nhớ và lặp lại việc gõ các câu lệnh
- * Muốn tự động hóa mọi thao tác
- * Muốn tiết kiệm thời gian quản trị máy chủ
- * Muốn tiết kiệm tiền bạc, nhân lực quản trị máy chủ 👉 https://flashvps.dev
Các bài viết trên website thường xuyên được đăng tải và cập nhật trên trang Facebook Chung Nguyễn Blog hãy tặng cho Chung một LIKE nhé! Mãi yêu các bạn!
813 👍
Bình luận