首頁 php框架 Laravel Laravel開發:如何使用Laravel Validation驗證請求資料?

Laravel開發:如何使用Laravel Validation驗證請求資料?

Jun 14, 2023 am 08:35 AM
laravel validation 請求數據

Laravel開發:如何使用Laravel Validation驗證請求資料?

Laravel作為目前最受歡迎的PHP框架之一,原因之一就在於它提供了許多優秀的組件,其中之一是Laravel Validation。在Web開發過程中,我們常常需要驗證從前端提交的資料是否符合規範,如表單提交等,這時候就需要使用Laravel Validation元件來進行資料驗證。

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

  1. 引入Validation
##在Controller中引入Validator:

use IlluminateSupportFacadesValidator;
登入後複製

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

規則#說明 required必填email「郵件信箱格式date郵件信箱格式日格式正規符合最大長度
date
regex
max
  1. min
最小長度

#驗證器建構
  • 使用Laravel Validaton需要先建構驗證器,可以用不同的方式進行建構,如:
  1. 使用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->has('name'))
  <span class="help-block">
    <strong>{{ $errors->first('name') }}</strong>
  </span>
@endif
登入後複製

自訂錯誤訊息

###在驗證器建構的第二個參數中,可以透過設定自訂錯誤訊息來對驗證錯誤進行更具體的提示,如:###
public function rules()
{
  return [
    'name' => 'required|max:255',
    'email' => 'required|email|unique:users|max:255',
    'password' => 'required|min:6|max:255',
  ];
}

public function messages()
{
  return [
    'name.required' => '名称不能为空',
    'email.required' => '邮箱不能为空',
    'email.email' => '请输入正确的邮箱地址',
    'email.unique' => '该邮箱已经被注册',
    'password.required' => '密码不能为空',
    'password.max' => '密码长度不能超过:max个字符',
  ];
}

public function register(Request $request)
{
  $validator = Validator::make($request->all(), $this->rules(), $this->messages());

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

  // 验证通过,执行代码
}
登入後複製
###本文以上述程式碼為例進行了Laravel Validation的基本介紹,希望本文能幫助大家。 ######參考資料:######《Laravel框架》###

以上是Laravel開發:如何使用Laravel Validation驗證請求資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP 與 Flutter 的比較:行動裝置開發的最佳選擇 PHP 與 Flutter 的比較:行動裝置開發的最佳選擇 May 06, 2024 pm 10:45 PM

PHP 與 Flutter 的比較:行動裝置開發的最佳選擇

PHP中如何使用物件-關聯映射(ORM)簡化資料庫操作? PHP中如何使用物件-關聯映射(ORM)簡化資料庫操作? May 07, 2024 am 08:39 AM

PHP中如何使用物件-關聯映射(ORM)簡化資料庫操作?

Laravel - Artisan 指令 Laravel - Artisan 指令 Aug 27, 2024 am 10:51 AM

Laravel - Artisan 指令

PHP 單元測試工具的優缺點分析 PHP 單元測試工具的優缺點分析 May 06, 2024 pm 10:51 PM

PHP 單元測試工具的優缺點分析

Laravel和CodeIgniter的最新版本對比 Laravel和CodeIgniter的最新版本對比 Jun 05, 2024 pm 05:29 PM

Laravel和CodeIgniter的最新版本對比

Laravel 和 CodeIgniter 中資料處理能力的比較如何? Laravel 和 CodeIgniter 中資料處理能力的比較如何? Jun 01, 2024 pm 01:34 PM

Laravel 和 CodeIgniter 中資料處理能力的比較如何?

PHP 程式碼單元測試與整合測試 PHP 程式碼單元測試與整合測試 May 07, 2024 am 08:00 AM

PHP 程式碼單元測試與整合測試

Laravel和CodeIgniter:哪種框架更適合大型專案? Laravel和CodeIgniter:哪種框架更適合大型專案? Jun 04, 2024 am 09:09 AM

Laravel和CodeIgniter:哪種框架更適合大型專案?

See all articles