Laravel 8 編寫驗證邏輯

2021-07-17 16:06 更新

現在我們開始在 store 方法中編寫用來驗證新的博客文章的邏輯代碼。為此,我們將使用 Illuminate\Http\Request 類提供的 validate 方法。如果驗證通過,你的代碼會繼續(xù)正常運行。如果驗證失敗,則會拋出異常,并自動將對應的錯誤響應返回給用戶。 在傳統 HTTP 請求下,會生成一個重定向響應, 而對于 AJAX 請求則會發(fā)送 JSON 響應。

為了深入理解 validate 方法,讓我們接著回到 store 方法中:

/**
 * 存儲一篇新的博客文章
 *
 * @param  Request  $request
 * @return Response
 */
public function store(Request $request)
{
    $validatedData = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);

    // 博客文章驗證通過...
} 

如你所見,我們將所需的驗證規(guī)則傳遞至 validate 方法中。另外再提醒一次,如果驗證失敗,會自動生成一個對應的響應。如果驗證通過,那我們的控制器會繼續(xù)正常運行。

或者,驗證規(guī)則可以使用數組而不是單個 | 分隔的字符串:

$validatedData = $request->validate([
    'title' => ['required', 'unique:posts', 'max:255'],
    'body' => ['required'],
]); 

你可以使用 validateWithBag 方法來驗證請求,并將所有錯誤信息儲存在一個 命名錯誤信息包 中:

$validatedData = $request->validateWithBag('post', [
    'title' => ['required', 'unique:posts', 'max:255'],
    'body' => ['required'],
]); 


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號