От автора: приветствую вас, друзья. В этой статье мы продолжим знакомиться с понятием контроллеры в Yii2. Из статьи мы узнаем, как создать свой первый контроллер, как его вызвать и как изменить controller по умолчанию.
Итак, в предыдущей статье мы с вами затронули теоретические моменты данного понятия. В частности, мы узнали, каким может быть его название, взглянули на controller по умолчанию — SiteController, а также затронули понятие действий (action).
Теперь давайте перейдем к более практическим вопросам и попробуем создать свой первый controller. Напомню, он должен находиться в папке controllers, там мы его и создадим. Пусть это будет тестовый класс, который я назову согласно правил именования фреймворка — TestController:
1 2 3 4 5 6 7 8 9 10 |
<?php namespace app\controllers; use yii\web\Controller; class TestController extends Controller { } |
Отлично! Как вы помните, созданный класс должен наследовать yii\web\Controller. Идем дальше. Следующим шагом будет создание первого действия (action), которое будет отвечать за работу со страницей в браузере. Давайте создадим пару экшенов: первое назовем actionIndex, второе — actionPage.
1 2 3 4 5 6 7 8 9 |
public function actionIndex() { echo __METHOD__; } public function actionPage() { echo __METHOD__; } |
Пока все просто. А как теперь вызвать контроллер и нужный action. В Yii вызов класса и действия происходит следующим образом: в адресной строке браузера мы просто должны указать название класса без слова Controller и действия без слова action. Все это нужно указать по умолчанию так: //yii2/web/index.php?r=test/page — так мы вызовем TestController и его действие actionPage.
Соответственно, если мы хотим обратиться к другому действию — actionIndex — нам просто нужно указать нужное название действия: //yii2/web/index.php?r=test/index. К слову, добиться того же результата можно и по такому адресу — //yii2/web/index.php?r=test. Так возможно, потому что по умолчанию, если мы не указываем название действия, тогда фреймворк будет вызывать actionIndex.
Ну и, наконец, последний момент, которого мы коснемся, это установка контроллера по умолчанию. Напоминаю, сейчас таковым является SiteController. Сделать это можно через файл конфигурации — config\web.php. Добавим в этот файл настройку defaultRoute со значением вида controller/action. Например, сделаем таковым по умолчанию TestController и действием по умолчанию actionPage:
1 |
'defaultRoute' => 'test/page', |
На этом мы, пожалуй, остановимся. Пока что наши страницы выглядят не очень презентабельно, но в следующих статьях мы узнаем, как это поправить. Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков.