Bộ điều khiển tài nguyên RESTful
Bộ điều khiển tài nguyên RESTful thiết lập một số tuyến mặc định cho bạn và thậm chí đặt tên cho chúng.
Route::resource('users', 'UsersController');
Cung cấp cho bạn các tuyến đường được đặt tên này:
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|PATCH /users/{user} update users.update
DELETE /users/{user} destroy users.destroy
Và bạn sẽ thiết lập bộ điều khiển của mình một cái gì đó như thế này (hành động = phương thức)
class UsersController extends BaseController {
public function index() {}
public function show($id) {}
public function store() {}
}
Bạn cũng có thể chọn những hành động được bao gồm hoặc loại trừ như thế này:
Route::resource('users', 'UsersController', [
'only' => ['index', 'show']
]);
Route::resource('monkeys', 'MonkeysController', [
'except' => ['edit', 'create']
]);
Tài liệu điều khiển tài nguyên RESTful
Bộ điều khiển ngầm
Một bộ điều khiển ngầm là linh hoạt hơn. Bạn được định tuyến đến các phương thức điều khiển của mình dựa trên tên và loại yêu cầu HTTP. Tuy nhiên, bạn không có tên tuyến đường được xác định cho bạn và nó sẽ bắt tất cả các thư mục con cho cùng một tuyến đường.
Route::controller('users', 'UserController');
Sẽ dẫn bạn thiết lập bộ điều khiển với sơ đồ đặt tên RESTful:
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'
}
}
Tài liệu điều khiển ngầm
Đó là thực hành tốt để sử dụng những gì bạn cần, theo sở thích của bạn. Cá nhân tôi không thích các bộ điều khiển tiềm ẩn , vì chúng có thể lộn xộn, không cung cấp tên và có thể gây nhầm lẫn khi sử dụng php artisan routes
. Tôi thường sử dụng bộ điều khiển RESTful Resource kết hợp với các tuyến rõ ràng.