Yii CModel.rules() 方法 、validate预定义完整列表、以及说说验证

public array rules ()
{return}  
array  要调用 validate() 时应用的有效性规则。

返回属性的有效性规则。

 

 

声明验证规则,应重写此方法。 每个规则是数组具有以下结构:

array('attribute list', 'validator name', 'on'=>'scenario name', ...validation parameters...)

注:

 

  • attribute list: 指定属性 (以逗号分隔) 进行验证 ;
  • validator name: 指定要使用的验证程序。 
    它可以是方法的一个模型类的一个内置的验证器或验证程序类 (或其路径的别名) 名称的名称。 
    
    一种验证方法必须具有以下签名: 
    
    // $params refers to validation parameters given in the rule
    function validatorName($attribute,$params)
    内置的验证程序是指在 CValidator::builtInValidators 中声明的验证程序之一。 验证程序的类是扩展 CValidator 的类。
  • on: 应执行有效性规则时,此选项指定的情形。 
    用逗号分开不同的方案。 
    如果未设置此选项,将在任何情况下应用规则。 
    方案
     中有关此选项的更多详细信息,参阅。
    
  • 附加参数用于初始化相应的验证程序属性。 请参阅 individal 验证器类 API 可能的属性。


以下是一些例子:
array(
  array('username', 'required'),
  array('username', 'length', 'min'=>3, 'max'=>12),
  array('password', 'compare', 'compareAttribute'=>'password2', 'on'=>'register'),
  array('password', 'authenticate', 'on'=>'login'),
  array('Price','numerical', 'integerOnly'=>true),
);


预定义完整列表:

 

验证的实现:

事实上CModel.rules()+CActiveForm.validate的结合就实现验证功能了。
例子:
【view】
<div class="form">
<?php $form = $this->beginWidget('CActiveForm'); ?>

<?php echo $form->errorSummary($model); ?> //注1:这里显示出错时,报错的地方
……
<?php $this->endWidget(); ?>
</div>

【control】
$model=new user;
if(isset($_POST['user']))
{
$model->attributes=$_POST['user'];
if($model->validate() && $model->save()) //注2:$model->validate()就是在调用model.rules进行验证
  $this->redirect(array('view','id'=>$model->id));
}

【model】
class user extends CActiveRecord
……
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('username, password, email', 'required'),
array('username, password, email', 'length', 'max'=>128),
array('id, username, password, email', 'safe', 'on'=>'search'),
);
}
……

要实现更强大复杂的验证功能也就在rules()里做文章了。
有关用Ajax验证,会在Ajax专题中具体介绍。当然有必要时,也会再加的。

==============================================

点缀娱乐 点缀娱乐 点缀娱乐 点缀娱乐 点缀娱乐 点缀娱乐 点缀娱乐 点缀娱乐 

==============================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值