Bạn có từng gặp phải những trường hợp giống như dưới đây không?
Route::resource
POST, GET
a
Nếu bạn chưa gặp những trường hợp vừa liệt kê, thì ắt hẳn, bạn sẽ gặp nó trong một thời điểm nào đó trong tương lai gần, có thể là khi bạn tham gia vào một dự án của một công ty, hoặc mở rộng team, hoặc khi bạn chuyển từ solo sang team. Làm thế nào để bạn có thể chuẩn bị trước cho những trường hợp như vậy?
Hãy đặt tên cho các router của bạn!
Khi bạn thêm tên cho một router, sau đó sử dụng helper route(), bạn sẽ có được duy nhất một chỗ để điều khiển/thay đổi router của bạn mà không cần phải đi tìm bất kỳ chỗ nào trong dự án để thay đổi nó. Dưới đây là một ví dụ cụ thể:
route()
// Router hiện tại của bạn chưa được đặt tên Route::get('/', 'HomeController@index');
// Thẻ a của bạn không sử dụng helper route() <a href="/" title="Trang chủ">Trang chủ</a>
// Hoặc trong Controller return redirect('/');
Sau khi bạn đặt tên cho router của mình, bạn sẽ được như sau:
// Router sau khi được đặt tên, sử dụng ->name('ten-route-cua-ban') Route::get('/', 'HomeController@index')->name('home');
Và rồi, bạn có thể sử dụng thẻ a trỏ về trang chủ ở bất kỳ nơi nào như sau:
<a href="{{ route('home') }}" title="Trang chủ">Trang chủ</a>
// Hoặc trong Controller return redirect(route('home'));
Trong tương lai, giả sử chủ dự án yêu cầu thay đổi đường dẫn trang chủ từ / thành /home thì bạn có thể dễ dàng thay đổi mà không cần phải tác động đến các thẻ a trỏ về trang chủ như sau:
/
/home
// Cũ Route::get('/', 'HomeController@index')->name('home'); // Mới Route::get('/home', 'HomeController@index')->name('home');
Đấy! Đơn giản như vậy đấy!
Điều này không chỉ giúp bạn có được cấu trúc đường dẫn trên một nguồn thực sự tồn tại, mà Laravel còn báo lỗi khi một tên router (route name) nào đó không tồn tại, điều này sẽ giúp cho dự án của bạn không còn đường dẫn 404. Ngoài ra, một số chương trình hỗ trợ lập trình có công cụ hỗ trợ gợi ý tên router khi bạn code, ví dụ như phpStorm.
một tên router (route name)
Cuối cùng, Laravel cũng tự động định nghĩa tên router dựa trên nguồn resource mà bạn đã đặt, và Laravel cũng cung cấp các tùy chọn cho tiền tố của tên một router. Bạn có thể đọc thêm trong tài liệu hướng dẫn của Laravel.
Đến đây thì mẹo đầu tiên đã kết thúc, rất cảm ơn bạn đã chịu khó đọc đến đây, nếu có chỗ nào khó hiểu, bạn có thể để lại bình luận, mình sẽ trả lời lại cho các bạn trong sự hiểu biết của mình nhé. Hẹn gặp lại bạn trong mẹo tiếp theo.