Ресурсные контроллеры

Ресурсные контроллеры - это тип контроллеров 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