В основном то, что сказал Паскаль, правильно: когда используется Zend_Layout
, он вставит содержимое скрипта вида в главный макет, где
echo $this->layout()->content;
называется. Поскольку это вставка, вы не включаете всю HTML-страницу. В вашем примере шаблон и макет содержат полную страницу с элементами HTML, HEAD и BODY, что приводит к неверной разметке.
Однако, поскольку сценарии просмотра обрабатываются до сценариев макета, вы можете установить макет из сценария просмотра через помощник по макету , используя
$this->layout()->setLayout('foo');
Вы также можете установить макет из контроллера
$this->_helper->layout->disableLayout();
И, конечно, как и все в ZF, его можно настроить и из application.ini. Zend_Layout
Quickstart действительно лучший способ узнать об этом компоненте.