我有一个activeRecord对象数组(来自model()->findAll()
调用),我将其传递给CGridView。
在该网格中,我需要一个列,每个条目都有一个单选按钮,它具有记录属性作为其值。
所以在我的控制器UserController.php
中我有:
$users = User::model()->findAll('name=? and surname=?', array($name,$surname));
$this->render('transfer_step_2',array('users'=>$users,));
在我看来transfer_step_2.php
我曾尝试过其他人:
<?php $this->widget('bootstrap.widgets.TbGridView',array(
'type'=>'striped condensed',
'id'=>'user-grid',
'dataProvider'=>new CActiveDataProvider('User', array(
'data'=>$users)),
'template'=>"{items}\n{pager}",
'columns'=>array(
'name',
'surname',
'telephone',
'email',
array(
'header'=>'Select',
'type'=>'raw',
'value'=>"CHtml::radioButton('user_id['.$data->id.']',false)"
),
),
)); ?>
当呈现视图时,发生内部服务器错误,并且$ data是Chtml :: radioButton所在行的未知变量。
我如何实现我想要的,即我只能选择一个用户的列表,提交表单,然后根据提交的用户ID执行处理逻辑。
答案 0 :(得分:0)
你有错误:
array(
'header'=>'Select',
'type'=>'raw',
'value'=>"CHtml::radioButton('user_id['.$data->id.']',false)"
),
这是真的:
array(
'header'=>'Select',
'type'=>'raw',
'value'=>"CHtml::radioButton('user_id[".$data->id."]',false)"
),
答案 1 :(得分:0)
虽然你的答案也不起作用,但你却把我送到了正确的轨道上。 有用的是:
array(
'header'=>'Select',
'type'=>'raw',
'value'=>'CHtml::radioButton("users[$data->id]",false)',
),
我最终得到的是:
array(
'header'=>'Select',
'type'=>'raw',
'value'=>'CHtml::radioButton("user",false,array(
"value"=>"$data->id"
))',
'htmlOptions'=>array(
'style'=>'text-align:center'
),
),
每行产生以下html:
<td style="text-align:center"><input type="radio" id="user" name="user" value="22"></td>