我是Yii的新手,并尝试编写一个小部件。它是一个复杂的,包含一个“动作”,它应该在这个小部件中呈现一个视图。
我以前是$ this-> renderPartial();在Action内部,但它会抛出错误。
我的widget类缩短了构造
class CCProductFilters extends CWidget {
...
public static function actions() {
return array(
'CutShapeSelected' => 'application.components.rigthSidebar.widget.actions.contactFormSubmitted'
);
}
...
}
答案 0 :(得分:3)
关于您的问题,您既未指定窗口小部件的结构,也未指定您尝试访问的文件的路径,但我可以假设您的视图文件可以在内部组件文件夹下找到:
如果您的结构如下所示:
-components
| - rigthSidebar
| - widget
| - actions
| - contactFormSubmitted.php
| - ...
| - views
| - YOUR_VIEW_FILE.php
| - ...
| - CCProductFilters.php
然后您将使用以下代码直接从操作文件
访问视图文件$this->controller->renderPartial('application.components.rigthSidebar.widget.views.YOUR_VIEW_FILE.php', array(), false, true);
请注意,如果没有访问控制器,您不能只在$this->renderPartial();
内部操作。
希望它有所帮助,欢呼!