复选框“接受Yii上的许可协议”和处理步骤

时间:2013-06-19 09:48:16

标签: php yii

我使用模型User(table tbl_user)在网站上创建了一个注册表单。并通过规则必填字段。

但是,我如何处理不在桌面上的字段的值?即复选框:“接受许可协议。如果未选择该选项,则抛出错误?

应该在User模型中添加什么以及如何处理控制器中的错误?

P.S。对不起,如果这个问题非常愚蠢。但我是Yii的新手,所以有点困惑。

2 个答案:

答案 0 :(得分:3)

你可以按图所示

您的查看文件

<div class="row rememberMe" id="CHECKBOX">
        <?php echo $form->checkBox($regForm,'agree'); ?>
        <?php echo $form->label($regForm,'agree'); ?>
        <?php echo CHtml::link("terms and Conditions",array('message/goodbye'));?>
        <?php echo $form->error($regForm,'agree'); ?>
    </div>

创建一个表单扩展cform模型,如下所示

传递你的RegisterationForm模型

$regForm =new RegistrationForm

在您的注册表中,如图所示

class RegistrationForm extends CFormModel
{
public $agree;

public function rules()
    {
       return array(
     array('agree', 'required', 'requiredValue' => 1, 'message' => 'You should accept term to use our service'),
);
}
public function attributeLabels(){
        'agree' => 'I agree the',
}

答案 1 :(得分:1)

如果您不希望将属性绑定到数据库,您可以使用CFORM MODEL或者您可以使用Cactive Record。更好地使用CFORM模型,如果没有数据库交互,您可以检查他们使用的yiis默认联系人选项卡CFORM模型。当你想收集数据时没有数据库交互,你可以使用CFORM MODEL

你想在哪里保存数据库中的数据然后你应该复制到数据库模型并保存它只是为了收集属性值,例如将其视为你的cactive模型

$model=new User() //this extends Cactive record
$regForm=new Registerationform () // this extends CForm Model

现在如果你想保存到模特那么这样做

$model->attribute=$regForm->AttributeValue
$model->save(); 

使用此方法只是当您需要在数据库表中更改或添加一些额外字段时,无需更改由CACTIVERECORD扩展的整个模型,您只需向CFORMMODEL模型添加属性即可如上所述