Попробуем
После создания действия и представления вы можете перейти на новую страницу по следующему URL:
http://hostname/index.php?r=site%2Fsay&message=Привет+мир
Будет отображена страница с надписью «Привет мир». Она использует ту же шапку и футер, что и остальные страницы приложения. Если вы не укажете параметр message
, то увидите на странице «Привет». Это происходит потому, как message
передаётся в метод actionSay()
и значение по умолчанию — «Привет».
Info: Новая страница использует ту же шапку и футер, что и другие страницы, потому что метод [[yii\web\Controller::render()|render()]] автоматически вставляет результат представления
say
в, так называемый, макетviews/layouts/main.php
.
Параметр r
требует дополнительных пояснений. Он связан с маршрутом (route), который представляет собой уникальный идентификатор, указывающий на действие. Его формат ControllerID/ActionID
. Когда приложение получает запрос, оно проверяет параметр r
и, используя ControllerID
, определяет какой контроллер следует использовать для обработки запроса. Затем, контроллер использует часть ActionID
, чтобы определить какое действие выполняет реальную работу. В нашем случае маршрут site/say
будет соответствовать контроллеру SiteController
и его действию say
. В результате, для обработки запроса будет вызван метод SiteController::actionSay()
.
Info: Как и действия, контроллеры также имеют идентификаторы, которые однозначно определяют их в приложении. Идентификаторы контроллеров используют те же правила именования, что и идентификаторы действий. Имена классов контроллеров получаются путём удаления дефисов из идентификатора, преобразования первой буквы каждого слова в верхний регистр и добавления в конец
Controller
. Например, идентификатор контроллераpost-comment
соответствует имени класса контроллераPostCommentController
.