W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當然,如果每一次需要驗證的時候都手動的建立并且驗證 Validator 實例會非常的麻煩。不用擔心,你有其他的選擇!Laravel自帶的 App\Http\Controllers\Controller
基類使用了一個 ValidatesRequests
的 trait
。這個 trait
提供了一個單一的、便捷的方法來驗證 HTTP 請求。代碼如下:
/**
* Store the incoming blog post.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required|unique|max:255',
'body' => 'required',
]);
//
}
如果驗證通過了,你的代碼會正常繼續(xù)執(zhí)行。如果驗證失敗,那么會拋出一個 Illuminate\Contracts\Validation\ValidationException
異常。這個異常會被自動捕獲,然后重定向至用戶上一個頁面。而錯誤信息甚至已經(jīng)存儲至 session 中!
如果收到的是一個 AJAX 請求,那么不會生成一個重定向。相反的,一個帶有 422 狀態(tài)碼的 HTTP 響應會被返回給瀏覽器,包含了一個含有錯誤信息的 JSON 對象。
比如,如下是手動創(chuàng)建驗證的等效寫法:
/**
* Store the incoming blog post.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$v = Validator::make($request->all(), [
'title' => 'required|unique|max:255',
'body' => 'required',
]);
if ($v->fails())
{
return redirect()->back()->withErrors($v->errors());
}
//
}
如果你想要自定義驗證失敗后已經(jīng)閃存至 session 的錯誤消息格式,可以通過覆蓋基類控制器的 formatValidationErrors
。不要忘記在文件頂部引入 Illuminate\Validation\Validator
類。
/**
* {@inheritdoc}
*/
protected function formatValidationErrors(Validator $validator)
{
return $validator->errors()->all();
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: