Все контроллеры в Yii наследуются от базового класса Controller
. Имя контроллера должно соответствовать маске <Name>Controller
.
Actions
Action традиционно для MVC — это метод контроллера, который может быть вызван через URL, соответствующий определенному маршруту (route).
Controller может содержать и другие методы, не action’ы. Чтобы отличить action-методы от обычных, имена action-методов должны начинаться с префикса action
. В целом имя action-метода должно соответствовать маске action<Name>
(action с маленькой буквы, Name с большой).
В Yii также выделяется понятие action ID: трансформированное в URL имя action’а. Именно по action ID action-метод может быть вызван через URL. Все слова в action ID пишутся с маленькой буквы, через тире, префикс action опускается. Трансформация action ID из URL в имя action-метода происходит по следующим правилам: тире опускаются, каждое новое слово пишется с большой буквы, добавляется префикс action(с маленькой буквы). Например, action ID create-comment
соответствует action-методу actionCreateComment
.
Action-методы могут принимать параметры. При вызове action-метода через URL его параметры будут автоматически заполнены значениями одноименных параметров get/post запроса.
В конце обработки запроса action-метод как правило обрабатывает представление (view) и возвращает результат этой обработки (а по сути просто вызывает файл представления и передает в него модель). Для обработки запроса используется метод базового класс Controller
render()
:
1 | return $this->render('say', ['message' => $message]); |
Первым параметром метод render()
принимает имя файла представления (view), а вторым передает в него модель (параметры). Файл представления метод render() ищет по пути views/<ControllerID>/<ViewName>.php
.