3

我是 Yii 的新手并尝试编写一个小部件。这是一个复杂的,包括一个“动作”,应该在这个小部件内呈现一个视图。

我曾经使用 $this->renderPartial(); 在 Action 内部,但它会引发错误。

我的小部件类缩短构造是

class CCProductFilters extends CWidget {
...
public static function actions() {
        return array(
            'CutShapeSelected' => 'application.components.rigthSidebar.widget.actions.contactFormSubmitted'          
        );
    }
...

}
4

1 回答 1

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();在小部件 Action 内部而不访问控制器。希望有帮助,加油!

于 2013-08-11T11:41:58.100 回答