0

我正在 Yii 中构建我的第一个模块(又一个 CMS 模块),以了解有关 Yii 及其功能的更多信息。下一步是我想在我所有页面的顶部添加一个“DEV 栏”。在我的布局中,我添加了以下内容:

<?php echo Yii::app()->getModule('cms')->toolbar(); ?>

在我的 CmsModule 文件中,我添加了一个名为 toolbar() 的函数,但我不确定从这里去哪里。基本上,我想将我的 Page 模型发送到 CMS 工具栏,然后呈现 CMS 工具栏视图。我的工具栏应该有链接来编辑当前页面元和页面内容。为了遵循 Yii 和 MVC 的最佳实践,如何才能最好地实现?在 CmsModule 中,我会得到 PageModel,如果是,我将如何呈现 CMS 视图?我尝试使用 $this->render(),但出现错误:

 Using $this when not in object context
4

1 回答 1

1

我不确定您所说的“页面模型”是什么意思,因为这不是 Yii 术语。所以我真的不能帮你。

但我想你误解了 Yii 中的模块是什么:它就像一个子应用程序,有自己的控制器、视图甚至模型。仅当您从该模块调用操作时,该模块才处于活动状态。

getModule('cms')如果该模块根本不活动,则获取模块的新实例没有多大意义。相反,您想要的可能是一个可以包含在主布局中的小部件。从该小部件中,您将呈现带有指向您的 CMS 模块的链接的顶部栏菜单。component如果您想将 CMS 相关代码放在一起,您也可以将该小部件放入模块的目录中。

于 2013-04-18T17:13:47.307 回答