Yii gridview中的单选按钮

时间:2014-01-19 22:53:42

标签: yii cgridview

我有一个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执行处理逻辑。

2 个答案:

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