如何将输入传递给Yii中不属于Model的控制器

时间:2014-01-21 02:31:36

标签: php yii

我有User型号(User extends CActiveRecord)的用户创建表单,其中包含常用字段,如用户名,密码或电子邮件。

表单的字段在视图中创建,如:

<div class="row">
    <?php echo $form->labelEx($model,'email'); ?>
    <?php echo $form->textField($model,'email',array('size'=>60,'maxlength'=>128)); ?>
    <?php echo $form->error($model,'email'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'superuser'); ?>
    <?php echo $form->dropDownList($model, 'superuser', User::itemAlias('AdminStatus')); ?>
    <?php echo $form->error($model,'superuser'); ?>
</div>

我实际上可以使用此表单创建用户,但现在我需要添加额外的信息。

我需要的是添加一个带有'City'列表的下拉列表(我将通过Ajax从DB中检索)并将相应的city_id发送到UserController以执行一些操作并添加额外的内容在保存之前,基于User的{​​{1}}字段。所以这个city_id不属于模型,我只需要在控制器中进行一些计算。

看起来像一个简单的问题,但现在我不知道怎么解决它。提前谢谢。

2 个答案:

答案 0 :(得分:2)

您有两种选择:

  1. 在模型中添加一个类变量。

    public $city_id;

  2. 然后你可以在下面调用

    <div class="row">
        <?php echo $form->labelEx($model,'city_id'); ?>
        <?php echo $form->dropDownList($model, 'city_id', $urcity_arr; ?>
        <?php echo $form->error($model,'city_id'); ?>
    </div>
    

    2.您可以使用CHTML

    但您可以在控制器中以$_POST["city_id"];

    进行访问
    <?php echo CHtml::dropdownlist('city_id', 'selected value',$urcity_arr); ?>
    

答案 1 :(得分:1)

选项1:正如@kumar_v所说 选项2:将city_id作为属性添加到用户模型

class User extends CActiveRecord{
public $city_id ;
...
}