1

Yii フレームワークを使用していますが、問題があります。拡張フォルダーにウィジェットを作成し、CGridView 内でウィジェットをレンダリングしようとしました。部分的なコード (私のグリッド) は次のようになります。

'columns'=>array(
'id',
'name',
array(
    'type'  => 'raw',
    'value' =>  $this->widget('application.extensions.jalali.gregorian2jalali',array())
),

実行中に次のエラーが表示されます。

Error 500
call_user_func_array() expects parameter 1 to be a valid callback, no array or string given

問題は何から来ているのですか?

4

4 に答える 4

3

値が正しく指定されていません。次のような文字列にする必要があります。

'value' =>  '$this->grid->controller
     ->widget("ext.jalali.gregorian2jalali",array(),true)'
于 2013-10-20T03:13:38.607 に答える
2


私は同じことを考えていて、次の作品を見つけました:

    <?php $this->widget('bootstrap.widgets.TbGridView',array(
         'type'=>'striped bordered condensed',
         'id'=>'jugada-grid',
         'dataProvider'=>$model->search(),
         'filter'=>$model,
         'columns'=>array(
            'id',
            'nombre',
            'descripcion',
            array(
                    'name'  => 'animacion',
                    'header'=> 'Animación',
                    'type' => 'raw',
                    'value'=> "Yii::app()->controller->widget('bootstrap.widgets.TbButton', array(
                    'label'=>'Campo',
                    'type'=>'primary',
                    'htmlOptions'=>array(
                        'id' => 'activate-field',
                        'data-toggle'=>'modal',
                        'data-target'=>'#field-popup',
                    ),
                ),true)",
            ),
            array(
                'class'=>'bootstrap.widgets.TbButtonColumn',
            ),
    ),
)); ?>

この例は、Yii Bootstrap 拡張機能のウィジェットに基づいていることに注意してください。
Yii::app()->controller->widget... が ".

于 2014-03-22T20:45:31.693 に答える
0

列が配列として指定されると、グリッド列インスタンスの作成に使用されます。ここで、'class' 要素は列クラス名を指定します (存在しない場合はデフォルトで CDataColumn になります)。現在、CDataColumn、CLinkColumn、CButtonColumn、および CCheckBoxColumn の公式の列クラスが提供されています。

http://www.yiiframework.com/doc/api/1.1/CGridView#columns-detail

CDataColumnの値: evaluateExpression を使用してすべてのデータ セルに対して評価され、その結果がデータ セルのコンテンツとしてレンダリングされる PHP 式。この式では、次の変数を使用できます。 $row 行番号 (ゼロベース)。$data 行のデータ モデル。$this は列オブジェクトです。PHP 式は、値を持つ任意の PHP コードにすることができます。式の詳細については、php マニュアルを参照してください。

コピペするだけ!

于 2013-10-19T12:51:54.577 に答える