2018年3月12日 laravel 学习之formrequest自定义验证规则

添加自定义formrequest验证

1.在App\Providers\AppServiceProvider 类的boot方法中添加如下内容:

Validator::extend('goods_activity_valid', function($attribute, $value, $parameters, $validator) {
    return GoodsActivityRepositoryEloquent::checkGoodsActivityTime($value,$parameters);
});
其中GoodsActivityRepositoryEloquent::checkGoodsActivityTime为需要处理验证逻辑的方法,goods_activity_valid为验证规格的名称,然后使用匿名方法处理,value为验证字段接收的值,parameters为要传递的参数
使用方法如下:
在对应的formrequest中rules方法中添加字段规格如下:
return [
    //
    'title'=>'required',
    'activity_time'=>'required|goods_activity_valid:{$id}',
];
其中activity_time为要验证的字段,goods_activity_valid为上边提到的验证规格名称,冒号后边的$id为要传入的参数
messages方法验证失败的提示信息方式发下:
return [
    'title.required'=>'标题必须填写',
    'activity_time.goods_activity_valid'=>'活动时间与其他活动时间冲突',
    'activity_time.required'=>'活动时间必须填写',
];
goods_activity_valid为上边提到的验证规格名称