Laravel開發:如何使用Laravel Validation驗證請求數據?

laravel開發:如何使用laravel validation驗證請求數據?

Laravel作為目前最流行的php框架之一,其原因之一就在于它提供了很多優秀的組件,其中之一是Laravel Validation。在Web開發過程中,我們常常需要驗證從前端提交的數據是否符合規范,如表單提交等,這時候就需要使用Laravel Validation組件來進行數據驗證。

本文將介紹Laravel Validation的基本用法及示例。

  1. 引入Validation

在Controller中引入Validator:

use IlluminateSupportFacadesValidator;
  1. 驗證規則

Laravel Validation支持多種不同的驗證規則,包括必填、郵箱、日期等。我們可以根據需求進行選擇。下表列舉了一些常用的規則:

規則 說明
required 必填
email 郵箱格式
date 日期格式
Regex 正則匹配
max 最大長度
min 最小長度
  1. 驗證器構造

使用Laravel Validaton需要先構造一個驗證器,可以通過不同的方式進行構造,如:

  • 使用Validator門面的make方法:
public function validate(Request $request) {   $validator = Validator::make($request->all(), [     'name' => 'required|max:255',     'email' => 'required|email|unique:users|max:255',     'password' => 'required|min:6|max:255',   ]);    if ($validator->fails()) {     return redirect('register')       ->withErrors($validator)       ->withInput();   }    // 驗證通過,執行代碼 }
  • 使用request驗證:
public function rules() {   return [     'name' => 'required|max:255',     'email' => 'required|email|unique:users|max:255',     'password' => 'required|min:6|max:255',   ]; }  public function register(Request $request) {   $this->validate($request, $this->rules());    // 驗證通過,執行代碼 }
  1. 驗證錯誤信息

如果驗證失敗,可以通過withErrors方法來獲取錯誤信息,如:

if ($validator->fails()) {   return redirect('register')     ->withErrors($validator)     ->withInput(); }

然后在視圖中調用$errors變量即可獲取對應錯誤信息:

@if ($errors-&gt;has('name'))   <span class="help-block">     <strong>{{ $errors-&gt;first('name') }}</strong>   </span> @endif
  1. 自定義錯誤信息

在驗證器構造的第二個參數中,可以通過設置自定義錯誤信息來對驗證錯誤進行更加具體的提示,如:

public function rules() {   return [     'name' =&gt; 'required|max:255',     'email' =&gt; 'required|email|unique:users|max:255',     'password' =&gt; 'required|min:6|max:255',   ]; }  public function messages() {   return [     'name.required' =&gt; '名稱不能為空',     'email.required' =&gt; '郵箱不能為空',     'email.email' =&gt; '請輸入正確的郵箱地址',     'email.unique' =&gt; '該郵箱已經被注冊',     'password.required' =&gt; '密碼不能為空',     'password.max' =&gt; '密碼長度不能超過:max個字符',   ]; }  public function register(Request $request) {   $validator = Validator::make($request-&gt;all(), $this-&gt;rules(), $this-&gt;messages());    if ($validator-&gt;fails()) {     return redirect('register')       -&gt;withErrors($validator)       -&gt;withInput();   }    // 驗證通過,執行代碼 }

本文以上述代碼為例進行了Laravel Validation的基本介紹,希望本文能夠幫助到大家。

參考資料:

《Laravel框架》

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享