algolia search

Tìm thấy x bài viết trong xms.

Laravel 5.7 Callable Action URLs

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 đó urlroute 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

Đánh giá bài viết

Thích thì like
Laravel 5.7 Callable Action URLs
5/5 1 votes

Bình luận

Hiển thị bình luận Facebook