的RESTful資源控制器
一個的RESTful資源控制器爲您設置了一些默認的路由,連名字他們。
Route::resource('users', 'UsersController');
給你這些命名路線:
Verb Path Action Route Name
GET /users index users.index
GET /users/create create users.create
POST /users store users.store
GET /users/{user} show users.show
GET /users/{user}/edit edit users.edit
PUT /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
而且你會設置你的控制器是這樣的(行動=方法)
class UsersController extends BaseController {
public function index() {}
public function show($id) {}
public function store() {}
}
您也可以選擇包括哪些行動或排除如下:
Route::resource('users', 'UsersController', [
'only' => ['index', 'show']
]);
Route::resource('monkeys', 'MonkeysController', [
'except' => ['edit', 'create']
]);
RESTful Resource Controller documentation
隱控制器
一種隱控制器更加靈活。您可以根據HTTP請求類型和名稱路由到您的控制器方法。但是,您沒有爲您定義路線名稱,它會捕獲相同路線的所有子文件夾。
Route::controller('users', 'UserController');
會導致您建立控制器帶有幾分REST風格的命名方案:
class UserController extends BaseController {
public function getIndex()
{
// GET request to index
}
public function getShow($id)
{
// get request to 'users/show/{id}'
}
public function postStore()
{
// POST request to 'users/store'
}
}
Implicit Controller documentation
它是使用你所需要的良好做法,根據您的偏好。我個人不喜歡隱式控制器,因爲它們可能會混亂,不提供名稱,並且在使用php artisan routes
時可能會引起混淆。我通常使用RESTful資源控制器結合顯式路由。
只是對Laravel 5.2用戶的說明,同時隱含的控制器已被棄用。 – Roy
路由::控制器加回代碼:https://github.com/shrimpwagon/laravel-route-controller – shrimpwagon