yii 中的表单验证

Form validation in yii

我试图 post 在 yii 中形成,但对验证没有任何想法,我浏览了一些 yii 文档但没有得到它。没有 yii 的表单对象我们不能做验证吗?意味着在视图中我使用正常的 HTML 作为 yii.

的形式

在操作中,您需要添加

$this->performAjaxValidation($model);

在_form中,添加

'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
);
}

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

无论是 Form 模型还是 CActiveRecord 模型,Yii 的模型中都内置了验证。

为了实施验证,请将验证规则放入您的模型中。在下面的示例中,我使用的是 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;
        }
        //    :
    }

}