如何在Zend Framework中基于数据库值设置布局

时间:2011-11-11 15:56:35

标签: zend-framework layout

我需要根据存储在数据库中的用户值来切换布局。我想使用插件设置它(尝试过PreDispatch挂钩)。但是,看起来我还无法访问那里的模型。我可以在什么时候访问db值并设置布局?我更喜欢全局,而不是为每个控制器设置。赞赏的想法。

1 个答案:

答案 0 :(得分:1)

出于此目的,最好使用控制器插件

class Core_Controller_Plugin_LayoutManager extends Zend_Controller_Plugin_Abstract
{
    public function routeStartup (Zend_Controller_Request_Abstract $request)
    {
        // Get your layout name here

        $this->_layout = Zend_Layout::getMvcInstance()
            ->setLayoutPath(YOUR_PATH_HERE)
            ->setLayout(YOUR_LAYOT_NAME_HERE);
    }
}

不要忘记在config中添加:

resources.frontController.plugins.templatemanager = Core_Controller_Plugin_LayoutManager