Я работаю на веб-сайте, где часть его у меня есть статический html, поэтому я создал макет и в нем я вставляю статический контент, используя представления. Моя проблема заключается в том, что на этом веб-сайте есть много страниц, которые я чувствую неправильно, создавая действие для каждого URL-адреса. Поэтому я реализовал контроллер ниже:
class PageController extends ControllerBase { public function initialize(){ $this->init(); $this->view->setLayout( 'website' ); } public function indexAction ($url=''){ if($url == 'about') $this->view->pick('page/about'); } }
Когда я устанавливаю представление контроллера для рендеринга $ this-> view-> pick ('page / about'); он не вставляет представление в шаблон. Он отображает только представление.
Есть ли способ визуализации представления в макете, и есть ли лучший подход к тому, что я делаю?
Спасибо за любую помощь
Чтобы загрузить шаблон, вы должны использовать
$this->view->setTemplateAfter('website');
вместо $this->view->setLayout( 'website' );
Используя $this->view->pick('page/about');
вы переписываете макет, установленный $this->view->setLayout( 'website' );
, в результате чего page/about
только page/about
макете.