1
$rid = ""
if( isset( $_GET['rid'] ) {
    $rid = $_GET['rid'];
}

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'guests-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
        'name',
        'address',
        'contact_numbers',
        'email_addresses',
        /*
        'company_name',
        'company_contact_nos',
        'person_to_notify_emergency',
        'person_to_notify_contact_no',
        */
        array(
            'class'=>'CButtonColumn',
            'viewButtonUrl' => 'Yii::app()->createUrl("guests/view",array("id"=>$data->idGuests,"rid"=>"$rid"))',

        ),
    ),
)); ?>

これは私のURLなので、$ridが存在すると確信しています

http://localhost/mysite/index.php?r=guests/admin&rid=1

エラーは次のとおりです。 ここに画像の説明を入力

エラーはviewButtonUrlが原因です.CGridViewのすべての変数が$model変数に含まれている必要があるため、$_GET ['rid']にエラーがある理由がわかります。

これを修正する方法はありますか?あなたの助けは非常に高く評価され、報われます!

ありがとう!

4

1 に答える 1

2

問題は、一重引用符を使用しているため、変数を CGridView コンポーネントに与えていることです。

次に、CGridView は文字列の解析を試みます。ただし、CGridView のコンテキストでは、 variable はありません$rid

この場合は二重引用符を使用し、文字列内の二重引用符をエスケープします。

'Yii::app()->createUrl("guests/view",array("id"=>$data->idGuests,"rid"=>"$rid"))'

なる

"Yii::app()->createUrl(\"guests/view\",array(\"id\"=>\$data->idGuests,\"rid\"=>\"$rid\"))"
于 2012-08-24T08:10:20.523 に答える