Zend Framework - 具有不同内容的不同布局

时间:2011-11-26 23:16:10

标签: zend-framework layout mobile

在我正在工作的项目中,我必须做两个版本的网站,一个桌面版本和一个移动版本。为了做到这一点,我不得不使用 wurfl 库,并创建了一个名为Plugins_Context的frontController插件。

在该课程中,在dispatchLoopStartup方法中,我检查设备是否是移动设备,我加载了另一个布局Zend_Layout::getMvcInstance()->setLayout('mobile');。使用新的移动布局加载 application / layouts / scripts / mobile.phtml ,我遇到的问题是当我调用$this->layout()->content它从常规视图加载内容时,我需要加载新移动视图的内容。

谢谢!

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,我所做的就是不使用

$this->layout()->content;

并从不同的布局中调用不同的操作,例如 -

$this->action('index', 'index','main');

$this->action('index_mobile', 'index','main');

希望它有所帮助。

答案 1 :(得分:0)

我使用下面的代码解决了这个问题

 $mobile     =   $this->request->getControllerName() . "/" . $this->request->getActionName() . ".mobile.phtml";
echo $this->partial($mobile,$params);

而不是

echo $this->layout()->content;

考虑您拥有名称

中名称后缀为.mobile的所有移动模板