表单验证规则如果在应用中仅仅使用一次,那便可使用闭包来代替规则对象。闭包函数接收属性的方法,属性的值以及在校验失败时的回调函数 $fail:
use Illuminate\Support\Facades\Validator; $rules = [ 'name' => [ 'required' ], 'title' => [ 'required', 'between:2,150', function ($attribute, $value, $fail) { if ($value === 'foo') { $fail('The ' . $attribute . ' is invalid.'); } }, ] ]; $messages = [ 'required' => ':attribute不能为空', 'in' => ':attribute必须选择', 'url' => ':attribute不是有效的url', ]; $attributes = [ 'name' => '名称', 'title' => '标题', ]; $validator = Validator::make($request->all(), $rules, $messages, $attributes); if ($validator->fails()) { return $validator->errors()->first(); }