0

管理ビューに情報を表示する新しいウィジェットを作成しました。最終的なビューは CGridView と同じである必要がありますが、列のロジックが異なります。CButtonColumn 列を呼び出そうとする場合を除いて、すべて正常に動作します。

foreach ($this->columns as $column) {
     if (is_array($column) && isset($column['class']) {
         $this->renderColumnWidget($column);
     }
}

/* ... */

protected function renderColumnWidget($column)
{
    $widgetClass = $column->class;
    unset($column->class);
    if (strpos($widgetClass, '.') === false) {
        $widgetClass = 'zii.widgets.grid.'.$widgetClass;
    }

    $this->widget($widgetClass, $column); // Error from here
}

基本的にここでは、列にクラス属性があるかどうかを確認し、そのウィジェットを呼び出します。しかし、私はエラーが発生します:CButtonColumn and its behaviors do not have a method or closure named "run".

私は何を間違っていますか?CButtonColumn にはrunメソッドがなく、このクラスを拡張したくありません。

4

1 に答える 1