创建
通过注入的方式实现代码解耦(分离验证代码=》使代码更简洁)
php artisan make:request StoreBlogPost
三个基本方法
- 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();
}
- rules
验证规则
public function rules()
{
return [
'name'=>'required|unique:admin_permissions|max:255',
'label'=>'required|max:255',
'cid'=>'required|int',
];
}
- 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)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
** 可以在控制器中重写formatValidationErrors 方法不用all() =》即返回数组
1. protected function formatValidationErrors(Validator $validator)
2. {
3. return $validator->errors()->all();
4. }