Контролер ресурсів 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|PATCH /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 Controller Resource
Неявний контролер
Неявний контролер є більш гнучким. Ви перейдете до методів контролера на основі типу та імені запиту HTTP. Однак у вас немає визначених назв маршрутів, і вони будуть охоплювати всі підпапки для одного маршруту.
Route::controller('users', 'UserController');
Це призведе до налаштування контролера за якоюсь схемою 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'
}
}
Неявна документація на контролер
Корисна практика використовувати те, що потрібно, відповідно до ваших уподобань. Мені особисто не подобаються непрямі контролери , тому що вони можуть бути безладним, не вказувати імена і можуть бути заплутаними при використанні php artisan routes
. Зазвичай я використовую контролери RESTful Resource в поєднанні з явними маршрутами.