Laravel — Контроллеры

Laravel — Контроллеры

От автора: в термине MVC-фреймворк «C» обозначает Контроллер. Он регулирует потоки между Моделью и Представлением.

Создание контроллера

Чтобы создать в Laravel контроллеры с помощью Artisan CLI (интерфейса командной строки), откройте командную строку или терминал на базе операционной системы, которую вы используете, и введите следующую команду:

Замените имя <controller-name> на имя вашего контроллера. Таким образом, будет создан простой конструктор, так как мы передаем аргумент — plain. Если вы не хотите создавать простой конструктор, вы можете не указывать аргумент. Созданный конструктор будет размещен в папке app/Http/Controllers. В него уже будет добавлен базовый код, к которому вы можете добавить собственный код. Созданный контроллер можно вызвать из файла route.php с помощью следующего синтаксиса.

Синтаксис

Шаг 1 — Выполните следующую команду для создания контроллера UserController.

Шаг 2 – В результате вы получите следующее.

Laravel — Контроллеры

Шаг 3 Созданный контроллер, уже содержащий базовый код, будет размещаться в файле app/Http/Controller/UserController.php, в зависимости от ваших потребностей вы можете добавить в него собственный код.

Middleware контроллера

Ранее мы рассматривали Middleware, его также можно использовать с контроллером. Middleware может быть назначено для маршрута контроллера или внутри конструктора контроллера. Вы можете использовать метод Middleware для назначения Middleware контроллеру. Применение зарегистрированного Middleware может быть ограничено конкретным методом контроллера. Назначение Middleware для маршрутизации

В этом коде мы назначаем Middleware auth в контроллере UserController для маршрута profile.

Назначение Middleware в конструкторе Контроллера

Здесь мы назначаем Middleware auth, используя метод Middleware в конструкторе UserController.

Пример

Шаг 1 — Добавьте следующий код в файл app/Http/routes.php и сохраните его. routes.php

Шаг 2 — Создайте FirstMiddleware, выполнив следующий код.

Шаг 3 — Добавьте следующий код в метод обработчика созданного FirstMiddleware в папке app/Http/Middleware. FirstMiddleware.php

Шаг 4 — Создайте SecondMiddleware, выполнив следующий код.

Шаг 5 — Добавьте следующий код в метод обработчика созданного SecondMiddleware в папке app/Http/Middleware. SecondMiddleware.php

Шаг 6 — Создайте контроллер с именем UserController, выполнив следующую команду.

Шаг 7 — После успешного выполнения URL-адреса вы получите следующий результат:

Laravel — Контроллеры

Шаг 8 — Скопируйте следующий код в файл app/Http/UserController.php.

Шаг 9. Теперь запустите внутренний сервер php, выполнив следующую команду, если вы еще не выполнили ее.

Шаг 10 – Перейдите по следующему URL-адресу. //localhost:8000/usercontroller/path

Шаг 11 – Вы должны увидеть на экране следующее:

Laravel — Контроллеры

Управляемые контроллеры ресурсов

Часто при создании приложения нам необходимо выполнить CRUD-операции (Create, Read, Update, Delete). Laravel позволяет сделать это намного проще. Просто создайте контроллер, и Laravel автоматически предоставит все методы для CRUD-операций. Вы также можете зарегистрировать один маршрут для всех методов в файле routes.php.

Пример

Шаг 1. Создайте контроллер под именем MyController, выполнив следующую команду.

Шаг 2 — Добавьте следующий код в файл app/Http/Controllers/MyController.php.

Шаг 3 — Добавьте следующую строку кода в файл app/Http/routes.php.

Шаг 4 — Теперь мы регистрируем все методы MyController, регистрируя контроллер с ресурсом. Ниже приведена таблица действий, выполняемых контроллером ресурсов.

Laravel — Контроллеры

Шаг 5 — Попробуйте выполнить URL-адреса, приведенные в следующей таблице.

Laravel — Контроллеры

Универсальные контроллеры

Универсальный контроллер позволяет определять один маршрут для обработки каждого действия в контроллере. Вы можете определить его в файле route.php с помощью метода Route:controller, как показано в приведенном ниже коде.

Замените <class-name-of-the-controller> на имя класса, которое вы указали для вашего контроллера. Имя метода контроллера должно начинаться с HTTP-метода, например get или post. Если вначале указано get, будет запущен get запрос, а если вначале указано post, будет обработан post запрос. После HTTP-метода вы можете указать любое имя для метода, но оно должно идти после URI.

Шаг 1 — Выполните для создания контроллера приведенную ниже команду. Мы помещаем имя класса в контроллер ImplicitController. Вы можете указать для класса любое имя по своему выбору.

Шаг 2 – В результате вы получите следующее:

Laravel — Контроллеры

Шаг 3 — Скопируйте следующий код в файл app/Http/Controllers/ImplicitController.php.

Шаг 4 — Добавьте следующую строку в файл app/Http/routes.php для маршрутизации запросов к указанному контроллеру.

Встраивание конструктора

Контейнер служб Laravel используется для работы со всеми контроллерами Laravel. В результате вы можете вводить любые зависимости, которые нужны в конструкторе для контроллера. Зависимости будут автоматически обработаны и введены в экземпляр контроллера.

Шаг 1 — Добавьте следующий код в файл app/Http/routes.php.

Шаг 2 — Добавьте следующий код в файл app/Http/Controllers/ImplicitController.php.

Шаг 3. Перейдите по следующему URL-адресу, чтобы проверить встроенный конструктор. //localhost:8000/myclass

Шаг 4 – Вы должны увидеть следующее:

Laravel — Контроллеры

Встраивание метода

Кроме встраивания конструктора вы также можете вводить зависимости для рабочих методов вашего контроллера.

Шаг 1 — Добавьте следующий код в файл app/Http/routes.php.

Шаг 2 — Добавьте следующий код в файл app/Http/Controllers/ImplicitController.php.

Шаг 3. Перейдите по следующему URL-адресу, чтобы проверить встроенный конструктор. //localhost:8000/myclass

В результате вы получите следующее:

Laravel — Контроллеры

Источник: //www.tutorialspoint.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: