Ресурсные контроллеры - это тип контроллеров Laravel, которые создаются с помощью флага --resource и содержат все методы для CRUD (создание, чтение, изменение и удаление.
Создаем для примера ресурсные контроллер Article с помощью следующего кода:
php artisan make:controller ArticleController --resource
В результате мы получим новый контроллер со следующими методами:
public function index() { // вывод все записей }
public function create() { // создание записи }
public function store(Request $request) { //сохранение записи }
public function show($id) { // вывод одной записи по id }
public function edit($id) { // редактирование записи }
public function update(Request $request, $id) { // обновление записи }
public function destroy($id) { // }
В маршрутизаторе ресурсный контроллер выводится следующим образом:
Route::resource('articles', ArticleController::class);
Также можно одновременно регистрировать несколько ресурсных контроллеров:
Route::resources([ 'articles' => ArticleController::class, 'comments' => CommentsController::class ]);
Где articles - это адрес по умолчанию для вывода все записей, который прописан в методе index
Для ограничения или искючения доступных методов можно использовать only или еxcept
Route::resource('articles', ArticleController::class)->only(['index', 'show']);
Для подключения нужного шаблона в методе контроллера прописываем следующий код:
public function index() { return view('article.index', [массив данных]); }
Чтобы привязать модель к определенному контроллеру, при создании контроллера используется флаг --model.
php artisan make:controller ArticleController --model=Article --resource