Phalcon PhP - 如何动态改变视图
Phalcon PhP - how to change the view dynamically
我在一个网站上工作,其中一部分有静态内容 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
布局。
我在一个网站上工作,其中一部分有静态内容 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
布局。