2010-08-15 115 views
0

我的应用应该像这样工作。首先,默认控制器的默认动作(根据URL)是否工作。为了这个问题的目的,我们把它命名为MyController和indexAction。在Zend Framework中渲染布局零件

然后它将($ this - > _ forward)转发给我的LayoutController menuAction,它将呈现导航部分(从数据库中选择菜单)并转发给footerAction,然后从数据库呈现页脚(这些东西在db中,但必须在每个单页)。

最后/views/scripts/my/index.phtml使用$ this-> layout() - >内容在布局中呈现。

问题是,我应该如何让布局的其他部分呈现在适当的位置?我是否需要额外的文件menu.phtml和footer.phtml以某种方式将由LayoutController menuAction和footerAction呈现,并以某种方式插入layout.phtml中的相应位置?或者我可以只有一个layout.phtml脚本,其中包含所有html,而menuAction/footerAction只是提供了要插入的数据库文本?

我对良好的编程习惯以及技术“如何”感兴趣,如果可以的话。

回答

2

我认为你应该考虑只使用一个layout.phtml作为你的模板。所以你的默认动作不会渲染布局的内容,而是渲染页面本身的内容。例如,在博客应用程序中,您将拥有侧边栏和页脚,并且您还将拥有发布内容。您的 - > viewPostAction()将呈现帖子,而带有 - > postDispatch()方法的插件将呈现每个页面中的布局内容。

你可以把这个问题作为基础:how to call multiple controller action from within any action in ZF?