在 Web 应用程序中,我需要在创建对象时在模型中添加一些规则。但是当我将我的规则添加到模型中时,会出现一些错误。例如在 summit 表单时用户输入的手机号码。
在视图页面中,有些输入需要用户完成,然后我想添加一些规则来验证用户输入,以防止使用输入一些无效的值。这意味着使用我自己的验证功能。
使用 Yii 框架的各位,我需要你们的帮助,谢谢。
在 Web 应用程序中,我需要在创建对象时在模型中添加一些规则。但是当我将我的规则添加到模型中时,会出现一些错误。例如在 summit 表单时用户输入的手机号码。
在视图页面中,有些输入需要用户完成,然后我想添加一些规则来验证用户输入,以防止使用输入一些无效的值。这意味着使用我自己的验证功能。
使用 Yii 框架的各位,我需要你们的帮助,谢谢。
编辑:在验证规则中使用自己的函数-在规则中指定具有这样属性的函数-
array('username','checkuniquename'),
然后在同一个模型中定义功能逻辑像这样:
public function checkuniqueemail($attribute)
{
$record=Users::model()->findByAttributes(array($attribute=>$this->email));
if($record!==null)
$this->addError($attribute, 'This email has been already taken please choose a different one');
}
您可以在 Yii 模型中为单个属性定义多个验证规则。
return array(
array('contact_no','numerical', 'integerOnly'=>true),
array('contact_no','length', 'min'=>8 ),
array('name, contact_no', 'required'),
array('name, contact_no', 'length', 'max'=>255),
array('password','pattern'=>'/^[A-Za-z0-9_!@#$%^&*()+=?.,]+$/u', 'message'=>'Spaces or given characters are not allowed'),
);
您可以在模型中指定很多验证。
首先,您需要在模型中指定一个验证规则,例如
return array(
.......
array('duration', 'days_available'),
.....
);
其中 duration 是字段名称,days_available 是函数名称。然后你需要在模型中编写函数。
public function days_available($attribute,$params)
{
//provide proper condition
$this->addError('duration','validation message');
}