在yii中进行表单验证

时间:2015-01-23 05:07:45

标签: validation yii

我试图在yii中发布表单,但对验证没有任何想法,我通过一些yii文档但没有得到它。没有yii的形式对象我们不能做验证吗?意味着我正在使用普通的HTML形式的yii。

2 个答案:

答案 0 :(得分:0)

在行动中,您需要添加

$this->performAjaxValidation($model);
,添加

'enableAjaxValidation'=>true,

在模型中,您需要设置规则,

public function rules(){
return array(
    // array('username, email', 'required'), // Remove these fields from required!!
    array('email', 'email'),
    array('username, email', 'my_equired'), // do it below any validation of username and email field
);
}

我想,这会对你有所帮助。

答案 1 :(得分:0)

验证是在模型中的Yii中构建的,无论是Form模型还是CActiveRecord模型。

要实施验证,请将验证规则放在模型中。在下面的示例中,我使用的是activerecord模型。

class Customer extends CActiveRecord {
//    :
public function rules(){
   return array(
      array('name, surname, email', 'required'),
      array('age, email', 'length','min'=>18)
   );
}

您现在可以验证任何表单,无论您使用的是Yii表单还是纯HTML表单。

要强制执行验证,您的控制器必须填充模型值,然后调用模型根据您之前定义的规则检查数据。

    class CustomerController extends CController {
         //      :
        $customerModel = new Customer;
        // Set fields using this format ...
        $customerModel->attributes['name'] = $_FORM['user'];
        // ...or this ...
        $customerModel->age = $_FORM['age'];
        // ...of this 
        $customerModel->setEmail($_FORM['email'];

        // Now validate the model
        if ($customerModel->validate) {
           return true;
        }
        else {
           return false;
        }
        //    :
    }

}