您的位置:首页 > 编程语言 > PHP开发

Yii 2.0 rule 自定义规则的使用心得

2017-07-02 00:00 363 查看
Yii 2.0有一套很好用的验证规则rule,并且可以自定义,只要在model的里面定义好rule

public function rules() {
return [
[['add_time', 'update_time'], 'safe'],
[['status'], 'integer'],
[['name'], 'string', 'max' => 50],
[['auth_ids'], 'string', 'max' => 500],
[['description'], 'string', 'max' => 200],
];
}

使用的时候
$Model =  new Model();
$Model->attributes = $data;
$model->validate()

就可以了
很简单

但是我这里要说的是他的自定义rule,之前了解自定义rule,没有发现,其实是可以添加很多参数帮助我们使用的

这是一条自定义的rule

['name', 'only', 'params' => ['message'=>'该角色已经存在','field'=>['name']]],

第一个name是验证的字段,第二个是验证的方法,第三个params就是我们需要用到的所谓的参数,这个参数的数据类型可以是字符串也可以是数组,我们定义好以后,写自定义方法

public function only($attribute, $params) {
//$attribute这个参数是rule里面的第一个参数,$params就是第二个参数了

这里就写你的逻辑
如果验证不通过,我们需要调用addError来输出,这里我有一个疑惑,其实这个rule我们可以写好message的,但是我发现不行,必须到这里使用这个addError才可以??
$this->addError($attribute, $params['message']);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Yii2