0

我想在 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 的子级。

4

1 回答 1

3

在另一个Yii 程序员的帮助下找到了解决方案

$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);
          }
      )
  ),
));
于 2012-09-06T09:03:54.257 回答