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 に答える