我想在CGridView的单元格中渲染一个php视图文件。
因此我写了这段代码:
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'value'=>array($this, 'renderPartial("_lineProblems")')
))));
但是我收到了这个错误:
BookController and its behaviors do not have a method or closure named "renderPartial('_lineProblems' )".
堆栈跟踪显示了这个问题:
call_user_func_array(array(BookController, "renderPartial('_lineProblems' )"), array("data" => line, "row" => 0, 0 => CDataColumn))
我不明白这个错误。 $ this是BookController的一个实例,BookController是CController的子代。
答案 0 :(得分:3)
在另一个Yii programmer
的帮助下找到了解决方案$controller = $this;
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'name'=>'errors',
'value'=>function($data, $row) use ($controller){
return $controller->renderPartial('_lineProblems', array('errors'=>$data->errors), true);
}
)
),
));