Laravel開(kāi)發(fā):如何使用Laravel Validation驗(yàn)證請(qǐng)求數(shù)據(jù)?

laravel開(kāi)發(fā):如何使用laravel validation驗(yàn)證請(qǐng)求數(shù)據(jù)?

Laravel作為目前最流行的php框架之一,其原因之一就在于它提供了很多優(yōu)秀的組件,其中之一是Laravel Validation。在Web開(kāi)發(fā)過(guò)程中,我們常常需要驗(yàn)證從前端提交的數(shù)據(jù)是否符合規(guī)范,如表單提交等,這時(shí)候就需要使用Laravel Validation組件來(lái)進(jìn)行數(shù)據(jù)驗(yàn)證。

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

  1. 引入Validation

在Controller中引入Validator:

use IlluminateSupportFacadesValidator;
  1. 驗(yàn)證規(guī)則

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

規(guī)則 說(shuō)明
required 必填
email 郵箱格式
date 日期格式
Regex 正則匹配
max 最大長(zhǎng)度
min 最小長(zhǎng)度
  1. 驗(yàn)證器構(gòu)造

使用Laravel Validaton需要先構(gòu)造一個(gè)驗(yàn)證器,可以通過(guò)不同的方式進(jìn)行構(gòu)造,如:

  • 使用Validator門(mén)面的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();   }    // 驗(yàn)證通過(guò),執(zhí)行代碼 }
  • 使用request驗(yàn)證:
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());    // 驗(yàn)證通過(guò),執(zhí)行代碼 }
  1. 驗(yàn)證錯(cuò)誤信息

如果驗(yàn)證失敗,可以通過(guò)withErrors方法來(lái)獲取錯(cuò)誤信息,如:

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

然后在視圖中調(diào)用$errors變量即可獲取對(duì)應(yīng)錯(cuò)誤信息:

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

在驗(yàn)證器構(gòu)造的第二個(gè)參數(shù)中,可以通過(guò)設(shè)置自定義錯(cuò)誤信息來(lái)對(duì)驗(yàn)證錯(cuò)誤進(jìn)行更加具體的提示,如:

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; '名稱(chēng)不能為空',     'email.required' =&gt; '郵箱不能為空',     'email.email' =&gt; '請(qǐng)輸入正確的郵箱地址',     'email.unique' =&gt; '該郵箱已經(jīng)被注冊(cè)',     'password.required' =&gt; '密碼不能為空',     'password.max' =&gt; '密碼長(zhǎng)度不能超過(guò):max個(gè)字符',   ]; }  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();   }    // 驗(yàn)證通過(guò),執(zhí)行代碼 }

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

參考資料:

《Laravel框架》

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享