$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变量中。
有没有办法解决这个问题?非常感谢您的帮助和奖励!
谢谢!
答案 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\"))"