我正在Yii(另一个CMS模块)中构建我的第一个模块,以了解有关Yii及其功能的更多信息。下一步是我想在我的所有页面的顶部添加“DEV栏”。在我的布局中,我添加了以下内容:
<?php echo Yii::app()->getModule('cms')->toolbar(); ?>
在我的CmsModule文件中,我添加了一个名为toolbar()的函数,我不知道从哪里开始。基本上,我想将我的Page模型发送到CMS工具栏,然后呈现CMS工具栏视图。我的工具栏应该有链接来编辑当前页面元和页面内容。为了遵循Yii&amp ;;的最佳实践。 MVC,如何最好地实现这一目标?在CmsModule中,我会获取PageModel,如果是,我将如何呈现CMS视图?我尝试过使用$ this-&gt; render(),但是我收到了错误:
Using $this when not in object context
答案 0 :(得分:1)
我不确定“页面模型”是什么意思,因为这不是一个Yii术语。所以我无法真正帮助你。
但我认为你误解了Yii中的模块是什么:它就像一个具有自己的控制器,视图甚至模型的子应用程序。当您从该模块调用操作时,模块仅处于活动状态。
如果该模块根本不活动,则使用getModule('cms')
获取模块的新实例没有多大意义。您更喜欢的是可能包含在主布局中的小部件。从该窗口小部件,您将呈现顶部栏菜单,其中包含指向CMS模块的链接。如果要将CMS相关代码保存在一起,也可以将该窗口小部件放入模块的component
目录中。