我是Yii的新手,正在尝试编写一个小部件。它是一个复杂的窗口,包括一个"Actions",它应该在这个窗口小部件中呈现一个View。
我以前用$this->renderPartial();在Action中,但它抛出错误。
我的小部件类缩短结构是
class CCProductFilters extends CWidget {
...
public static function actions() {
return array(
'CutShapeSelected' => 'application.components.rigthSidebar.widget.actions.contactFormSubmitted'
);
}
...
}
关于您的问题,您既没有指定小部件的结构,也没有指定您试图访问的文件的路径,但我可以假设您的视图文件可以在内部组件文件夹下找到:
如果你的结构是这样的:
-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);
请注意,在不访问控制器的情况下,您不能仅在小部件Action中使用$this->renderPartial();
。希望有帮助,加油!