Laravel Routing định tuyến đường dẫn url cho website

04/01/2022   Laravel
Laravel Routing định tuyến đường dẫn url cho website
Laravel Routing định tuyến đường dẫn url cho website
Routing trong Laravel: có tác dụng định tuyến đường dẫn url cho website. Dùng Routing để quy định khi truy cập Url sẽ gọi Controller nào trong hệ thống.
File quản lý Routing trong Laravel: routes\web.php
Các loại Routing trong Laravel:
- Route::get nhận resquest với phương thức GET.
- Route::post nhận resquest với phương thức POST.
- Route::put nhận resquest với phương thức PUT.
- Route::delete nhận resquest với phương thức DELETE.
- Route::group tạo ra các nhóm route.
- Route::resource sử dụng với resource controller.
- Route::controller gọi đến controller tương ứng mà chúng ta tự định.
- Route::match kết hợp nhiều phương phức như POST,GET,PUT,..
- Route::any nhận tất cả các phương thức.
Ví dụ các loại Routing cụ thể
Route::get – Gọi Controller với phương thức GET, thường dùng hiển thị danh sách dữ liệu
Route::get('foo', function () { Route::get('/user', 'UserController@index'); // Gọi Controller UserController, hàm index(), phương thức GET, xem danh sách Route::get('/user/{user}/edit', 'UserController@edit'); // Gọi Controller UserController, hàm edit(id), phương thức GET, sửa user có id |
Route::post – Gọi Controller với phương thức GET, thường dùng lưu dữ liệu
Route::post('/user', 'UserController@store'); // Gọi Controller UserController, hàm store(), phương thức POST |
Route::put – Gọi Controller với phương thức PUT, thường dùng cập nhật dữ liệu
Route::put('user/{user}', 'UserController@update'); // Gọi Controller UserController, hàm update(), phương thức PUT |
Route::delete – Gọi Controller với phương thức PUT, thường dùng cập nhật dữ liệu
Route::delete('user/{user}', 'UserController@destroy'); // Gọi Controller UserController, hàm destroy(), phương thức delete |
Route::resource – Tác dụng đại diện các route CRUD của controller
Route::resources([ 'user' => 'UserController' ]); |
Route này được hiểu thành sẽ có các Route sau
Route::get('/user', 'UserController@index'); // xem danh sách user Route::get('/user/create', 'UserController@create'); // tạo Route::get('/user/{user}', 'UserController@show'); // xem user Route::post('/user', 'UserController@store'); // lưu Route::get('/user/{user}/edit', 'UserController@edit'); // sửa Route::put('user/{user}', 'UserController@update'); // cập nhật Route::delete('user/{user}', 'UserController@destroy'); // xóa |
Cụ thể ta có bảng sau
Verb |
URI |
Action |
Route Name |
---|---|---|---|
GET |
/photos |
index |
photos.index |
GET |
/photos/create |
create |
photos.create |
POST |
/photos |
store |
photos.store |
GET |
/photos/{photo} |
show |
photos.show |
GET |
/photos/{photo}/edit |
edit |
photos.edit |
PUT/PATCH |
/photos/{photo} |
update |
photos.update |
DELETE |
/photos/{photo} |
destroy |
photos.destroy |
Route::group – Tác dụng nhóm các Route lại
Route::group(['middleware' => ['checkLogin'],'prefix'=>'admin'] , function(){ Route1::…. Route2::…. }); // Các Route1, Route2… cùng có middleware “checkLogin”, cùng có prefix: “admin” |
Route::controller – Gọi đến Controller tương ứng
Route::controller('/controller','HomeController',['getFirst'=>'first','getSecond'=>'second','postThird'=>'third']); // HomeController là controller sẽ hoạt động ['getFirst'=>'first','getSecond'=>'second','postThird'=>'third'] là một mảng chứa tên của các action của controller |
Bây giờ bạn sẽ có 3 controller
http://tênmiềnảocủabạn/controller/first http://tênmiềnảocủabạn/controller/second http://tênmiềnảocủabạn/controller/third |
Route::match – Kết hợp nhiều phương thức
Route::match(['GET', 'POST','PUT'],'/match',function(){ //Route này sẽ nhận request với 3 method là PUT, POST, GET |
Route::any – nhận tất cả các phương thức
Route::any(‘/any’, $action); //Route này nhận request với tất cả các method như: POST, GET, DELETE, ... |

