Когда вы возвращаете данные с контейнером переменных ViewModel
из метода действия
вашего контроллера, Zend Framework знает имя соответствующего файла шаблона представления.
Например, для метода aboutAction()
вашего IndexController
'а, ZF3 автоматически использует
шаблон представления about.phtml.
ZF3 определяет корректное имя шаблона представления по имени модуля, имени контроллера и имени действия. Например, действие
IndexController::aboutAction()
, принадлежащее модулюApplication
будет иметь шаблон представленияapplication/index/about.phtml
по умолчанию.
Если название вашего контроллера или действия состоит из нескольких слов в верблюжьем регистре (например,
UserRegistrationController
иregistrationStep1Action
), ему будет соответствовать шаблон представления application/user-registration/registration-step-1.phtml (имена в верблюжьем регистре преобразуются в нижний регистр, и слова разделяются дефисами).
ViewModel
также может использоваться, чтобы переопределить стандартные имена шаблонов представления.
Вообще, класс ViewModel
- это больше, чем просто контейнер для переменных. Он также позволяет переопределить,
какой именно шаблон представления нужно использовать для рендеринга страницы. Описание методов, используемых
для этого представлено в таблице 4.8.
Имя метода | Описание |
---|---|
setTemplate() |
Устанавливает имя шаблона представления. |
getTemplate() |
Возвращает имя шаблона представления. |
Для установки имени шаблона представления используется метод setTemplate()
. Метод
getTemplate()
возвращает имя шаблона представления, которое в данный момент установлено для модели представления.
Следующий образец кода показывает, как можно вызывать метод setTemplate()
из
метода indexAction()
вашего класса IndexController
, чтобы заставить
ZF3 использовать файл шаблона представления about.phtml для визуализации главной страницы
вместо файла index.phtml.
// Метод для отображения главной страницы вашего сайта.
public function indexAction()
{
// Использовать другой шаблон представления для рендеринга страницы.
$viewModel = new ViewModel();
$viewModel->setTemplate('application/index/about');
return $viewModel;
}
В приведенном отрезке кода мы как обычно создали новый экземпляр класса ViewModel
(строка 5).
Затем мы вызвали метод setTemplate()
для объекта модели представления (строка 6) и
передали имя шаблона представления как его аргумент. Имя шаблона представления - это,
по сути, относительный путь к файлу about.phtml
, но без расширения файла.
Наконец, мы вернули объект модели представления из метода действия (строка 7).
Однако, вызывать метод
setTemplate()
в каждом методе действия необязательно. Если вы не сделаете этого, ZF3 определит имя шаблона представления автоматически, по текущему имени модуля, имени контроллера и имени метода действия.