我试图在yii中发布表单,但对验证没有任何想法,我通过一些yii文档但没有得到它。没有yii的形式对象我们不能做验证吗?意味着我正在使用普通的HTML形式的yii。
答案 0 :(得分:0)
在行动中,您需要添加
$this->performAjaxValidation($model);
在答案 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;
}
// :
}
}