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"))',

        ),
    ),
)); ?>

我确定 $rid 存在,因为这是我的网址

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

这是错误: 在此处输入图像描述

该错误是由viewButtonUrl引起的,我知道$_GET['rid']之所以会出错是因为CGridView中的所有变量都应该在$model变量中。

有没有办法解决这个问题?您的帮助将不胜感激和奖励!

谢谢!

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 回答