laravel 验证 Request

创建

通过注入的方式实现代码解耦(分离验证代码=》使代码更简洁)

 php artisan make:request StoreBlogPost

三个基本方法

  1. authorize

判断请求用户是否经过认证


public function authorize()
{
    //默认为 false,返回值为true时才有权限
    //return true; 
    
    
    //表单的请求权限(用户是否有这个ID的评论)
    //Request的route 可以获取路由的参数
    $commentId = $this->route('id');
     return Comment::where('id', $commentId)
                  ->where('user_id', Auth::id())->exists();
}
  1. rules

验证规则

public function rules()
{
    return [
        'name'=>'required|unique:admin_permissions|max:255',
        'label'=>'required|max:255',
        'cid'=>'required|int',
    ];
}
  1. messages

验证信息

public function messages()
{
    return [
          'title.required' => 'A title is required',
           'body.required'  => 'A message is required',
          ];
}

控制层的使用

通过注入使用验证 (自动验证)
public function store(namePostRequest $request)
{
//自动验证
}

视图中添加错误信息

视图中添加错误信息

(
   $errors 是视图中一直存在的变量=》是一个Collection(集合)
   Session::get('errors') 获取=》原来就是一个session
)
@if (count($errors) > 0)
    
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif ** 可以在控制器中重写formatValidationErrors 方法不用all() =》即返回数组 1. protected function formatValidationErrors(Validator $validator) 2. { 3. return $validator->errors()->all(); 4. }

http://laravelacademy.org/post/6768.html

你可能感兴趣的:(laravel 验证 Request)