Route trong Laravel 8
Khi tìm hiểu về các Framework như Codeigniter, Laravel, Cakephp bạn sẽ thấy Route đóng vai trò không thể thiếu. Bạn đang tìm hiểu về Route Laravel và cách thức hoạt động của nó? Hãy đọc ngay bài viết này.
Mục Lục
Vai trò của Route trong Laravel
Route được dùng để định tuyến Request người dùng đến một Controller cụ thể. Và từ Controller này sẽ thực thi một nhiệm vụ nhất định.
Bạn hãy xem lại Bài 3: Kết nối Controller và View trong Laravel
Truy cập vào thư mục routes
=> web.php
bạn sẽ viết lệnh cho Route tại đây.
1. Router cơ bản
Cú pháp:
Route::<method>('<URI>', <callback function>)
Ví dụ thực tế:
Route::get('/home', '[email protected]');
Giải thích:
1. Route::get
Như bạn thấy nó sẽ bắt đầu bằng Route:: và get là phương thức. Ngoài ra còn có như phương thức khác nữa như:
- post
- put
- pacth
- delete
- options
2. BlogController
Đó chính là tập tin Controller để kết tới
3. index
Đây chính là chức năng hàm (function) nằm trong tập tin BlogController
2. Route truyền tham số (Parameters)
Nếu bạn đã học qua PHP thuần sẽ biết tới CRUD (tạo, đọc, sửa, xóa). Trong Laravel chức năng này cũng không thể thiếu. Và để xóa hay update một bài viết, user nào đó cần gọi id. Và lúc này cần truyền tham số để gọi.
Ví dụ:
Route::get('delete/{id}', 'App\Http\Controllers\[email protected]');
3. Đặt tên cho các Route
Khi viết Route bạn cũng đừng quên đặt tên cho nó. Việc này sẽ giúp cho việc viết lệnh trở nên đơn giản hơn rất nhiều.
Route::get('create', 'App\Http\Controllers\[email protected]')->name('create');
Giả sử mình muốn lấy URL thì sẽ viết
$url = route('create');
4. Nhóm route (Route group)
Nhóm route sẽ giúp bạn quản lý dễ dàng hơn. Việc này sẽ dựa vào các đặc điểm như có chung middleware, namespace, tiền tố (prefix)…
1. Chung tiền tố
Route::group(['prefix' => 'admin'], function () { Route::post('insert', 'App\Http\Controllers\[email protected]')->name('insert'); Route::get('edit/{id}', 'App\Http\Controllers\[email protected]')->name('edit'); Route::post('update/{id}', 'App\Http\Controllers\[email protected]')->name('update'); });
Và khi truy cập mình sẽ cần phải gõ localhost/domain/admin/insert hoặc admin/edit
2. Chung middleware
Route::middleware(['one', 'two'])->group(function () { Route::get('/', function () { // Sử dụng Middleware one và two }); Route::get('admin/view', function () { // Sử dụng Middleware one và two }); });
3. Chung namespace
Route::group(['namespace' => 'Backend'], function() { // Controllers Within The "App\Http\Controllers\Backend" Namespace }); Route::group(['namespace' => 'Frontend'], function() { // Controllers Within The "App\Http\Controllers\Frontend" Namespace });
Với chút kiến thức về Route trên đây sẽ giúp bạn hiểu rõ hơn và sử dụng đúng. Hãy đọc và thực hành bài tập dựa theo những gì mình chia sẻ ở bài này nhé!
Tags: Học Laravel