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 布局。