Если видео недоступно для просмотра, попробуйте выключить блокировщик рекламы.

Реализация CRUD – самый быстрый способ познакомиться с любым веб-фреймворком. Он затрагивает все основные его части и позволяет понять насколько в этом фреймворке удобно работать.

Создать CRUD в Laravel можно несколькими способами. Самый простой – добавить в файл роутинга нужные маршруты вместе с обработчиками. Внутри обработчиков реализовать логику вывода списка, создания, обновления и удаления статьи. Этот способ очень муторный, он требует много движений от программиста. И он быстро захламляет файл с маршрутами. Когда таких крудов станет хотя бы несколько штук, то ориентироваться в нем станет проблематично. А если добавить сотню другую как в реальных проектах, так вообще невозможно.

Проблема одного файла решается с помощью "контроллера". В Laravel, контроллером называют класс, который расположен в директории app/HTTP/Controllers. Методы этого класса связываются с конкретными маршрутами и отвечают за его обработку:

<?php

// routes/web.php

// Вторым параметром передается строчка: '[email protected]'
Route::get('/about', '[email protected]');
Route::get('/team', '[email protected]');


// app/HTTP/Controllers/PageController.php

namespace App\Http\Controllers;

// Должен наследоваться от Controller
class PageController extends Controller
{
    public function about()
    {
        return view('page.about');
    }

    public function team()
    {
        return view('page.team');
    }
}

Методы в контроллерах принято группировать по смысловой связи. Например все что относится к обычным страницам на сайте можно поместить в контроллер PageController, а CRUD статьи в контроллер ArticleController.

Еще одно соглашение, расположение шаблонов. Шаблоны одного контроллера лучше группировать вместе, в одной директории. В примере выше, все шаблоны страниц расположены по пути resources/views/page.

Контроллеры так же как и модели не нужно создавать руками. Их можно генерировать через artisan:

$ php artisan make:controller PageController
Controller created successfully.

А вот шаблоны и методы контроллера придется добавлять самостоятельно.

Самостоятельная работа

  1. Перенесите обработчик about в контроллер PageController. Убедитесь что страница открывается.

Дополнительные материалы

  1. Controller
Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →