$request->validate([
'title' => 'required|unique:posts|max:255',
'author.name' => 'required',
'author.description' => 'required',
]);
顯示驗證錯誤信息
如果傳入的請求參數未通過給定的驗證規則呢?正如前面所提到的, 會自動把用戶重定向到之前的位置。另外,所有的驗證錯誤信息會被自動 存儲到 。
重申一次,我們不必在 GET 路由中將錯誤消息顯式綁定到視圖。因為 會檢查在 數據中的錯誤信息,并自動將其綁定到視圖(如果這個視圖文件存在)。而其中的變量 $ 是 \\ 的一個實例。
注意:$ 變量被 web 中間件組提供的 \View\\on 中間件綁定到視圖中。 當這個中間件被應用后,在你的視圖中就可以獲取到 $error 變量 , 可以使一直假定 $ 變量存在并且可以安全地使用。
關于可選字段的注意事項
默認情況下,在 應用的全局中間件堆棧 App\Http\ 類中包含了 和 oNull 中間件。因此,如果你不希望驗證程序將 null 值視為無效的話,那就需要將「可選」的請求字段標記為 ,舉個例子:
$request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
'publish_at' => 'nullable|date',
]);
指定?????字段可以為??null???或者一個有效的日期格式。如果?????的修飾詞沒有被添加到規則定義中,驗證器會認為??null??是一個無效的日期格式。
AJAX 請求 & 驗證
在這個例子中表單驗證提示錯誤信息表單驗證提示錯誤信息,我們使用傳統的表單將數據發送到應用程序。但實際情況中,很多程序都會使用 AJAX 來發送請求。當我們對 AJAX 的請求中使用 方法時, 并不會生成一個重定向響應,而是會生成一個包含所有驗證錯誤信息的 JSON 響應。這個 JSON 響應會包含一個 HTTP 狀態碼 422 被發送出去。