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 () {
    return 'Hello World';
});

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(){
    return 'match route';
});

//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, ...

 

Bài viết cùng chủ đề