Yii zii.widgets.grid.CGridView viewButtonUrl问题

时间:2012-08-24 08:05:52

标签: php yii

$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

以下是错误: enter image description here

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

有没有办法解决这个问题?非常感谢您的帮助和奖励!

谢谢!

1 个答案:

答案 0 :(得分:2)

问题是你使用单引号,因此将变量赋予CGridView组件。

然后,CGridView尝试解析字符串。但是,在CGridView的上下文中,没有变量$rid

在这种情况下使用双引号并转义字符串中的双引号。

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

变为

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