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