創(chuàng)建
通過注入的方式實現(xiàn)代碼解耦(分離驗證代碼=》使代碼更簡潔)
php artisan make:request StoreBlogPost
三個基本方法
- authorize
判斷請求用戶是否經(jīng)過認(rèn)證
public function authorize()
{
//默認(rèn)為 false,返回值為true時才有權(quán)限
//return true;
//表單的請求權(quán)限(用戶是否有這個ID的評論)
//Request的route 可以獲取路由的參數(shù)
$commentId = $this->route('id');
return Comment::where('id', $commentId)
->where('user_id', Auth::id())->exists();
}
- rules
驗證規(guī)則
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() =》即返回數(shù)組
1. protected function formatValidationErrors(Validator $validator)
2. {
3. return $validator->errors()->all();
4. }