Laravel 遵從 RESTful 架構(gòu)的設(shè)計原則牛柒,將數(shù)據(jù)看做一個資源泪蔫,由 URI 來指定資源棒旗。對資源進行的獲取、創(chuàng)建撩荣、修改和刪除操作铣揉,分別對應(yīng) HTTP 協(xié)議提供的 GET、POST餐曹、PATCH 和 DELETE 方法逛拱。當我們要查看一個 id 為 1 的用戶時,需要向 /users/1
地址發(fā)送一個 GET 請求台猴,當 Laravel 的路由接收到該請求時朽合,默認會把該請求傳給控制器的 show
方法進行處理。
Laravel 為我們提供了 resource
方法來定義用戶資源路由饱狂。
routes/web.php
<?php
Route::get('/', 'StaticPagesController@home')->name('home');
Route::get('/help', 'StaticPagesController@help')->name('help');
Route::get('/about', 'StaticPagesController@about')->name('about');
Route::get('signup', 'UsersController@create')->name('signup');
Route::resource('users', 'UsersController');
新增的 resource
方法將遵從 RESTful 架構(gòu)為用戶資源生成路由曹步。該方法接收兩個參數(shù),第一個參數(shù)為資源名稱休讳,第二個參數(shù)為控制器名稱讲婚。
Route::resource('users', 'UsersController');
上面代碼將等同于:
Route::get('/users', 'UsersController@index')->name('users.index');
Route::get('/users/{user}', 'UsersController@show')->name('users.show');
Route::get('/users/create', 'UsersController@create')->name('users.create');
Route::post('/users', 'UsersController@store')->name('users.store');
Route::get('/users/{user}/edit', 'UsersController@edit')->name('users.edit');
Route::patch('/users/{user}', 'UsersController@update')->name('users.update');
Route::delete('/users/{user}', 'UsersController@destroy')->name('users.destroy');
可以看到使用 resource
方法讓我們少寫了很多代碼,且嚴格按照了 RESTful 架構(gòu)對路由進行設(shè)計俊柔。
生成的資源路由列表信息如下所示:
HTTP 請求 | URL | 動作 | 作用 |
---|---|---|---|
GET | /users | UsersController@index | 顯示所有用戶列表的頁面 |
GET | /users/{user} | UsersController@show | 顯示用戶個人信息的頁面 |
GET | /users/create | UsersController@create | 創(chuàng)建用戶的頁面 |
POST | /users | UsersController@store | 創(chuàng)建用戶 |
GET | /users/{user}/edit | UsersController@edit | 編輯用戶個人資料的頁面 |
PATCH | /users/{user} | UsersController@update | 更新用戶 |
DELETE | /users/{user} | UsersController@destroy | 刪除用戶 |