我的应用应该像这样工作。首先,默认控制器的默认操作(根据URL)完成它的工作。出于这个问题的目的,我们将其命名为MyController和indexAction。
然后它将($ this-> _forward)转发到我的LayoutController menuAction,它将渲染导航部分(来自数据库的菜单)并转发到footerAction,然后从数据库渲染页脚(db中的内容但必须在每个内容中都可见单页)。
最后,使用$ this-> layout() - >内容在布局中呈现/views/scripts/my/index.phtml。
问题是,如何在适当的位置渲染布局的其他部分?我是否需要其他文件menu.phtml和footer.phtml,它们会以某种方式由LayoutController menuAction和footerAction呈现,并以某种方式插入layout.phtml中的适当位置?或者我可以只使用一个包含所有html的layout.phtml脚本,而menuAction / footerAction只提供要插入的DB的文本?
如果可以的话,我对良好的编程实践方面以及技术“如何”感兴趣。
答案 0 :(得分:2)
我认为您应该考虑只使用一个layout.phtml作为模板。因此,您的默认操作将不会呈现布局的内容,而是呈现页面本身的内容。例如,在博客应用程序中,您将拥有侧边栏和页脚,您也将拥有帖子内容。你的 - > viewPostAction()将呈现帖子,而带有 - > postDispatch()方法的插件将在每个页面中呈现布局内容。
您可以将此问题作为基础:how to call multiple controller action from within any action in ZF?