目錄
什麼是Laravel Validation
如何使用Laravel Validation
常用的驗證規則
自訂驗證規則
自訂錯誤訊息
總結
首頁 php框架 Laravel Laravel開發:如何使用Laravel Validation驗證表單請求?

Laravel開發:如何使用Laravel Validation驗證表單請求?

Jun 13, 2023 pm 01:34 PM
laravel 表單驗證 validation

Laravel是一個流行的PHP Web開發框架,它提供了許多方便的功能來加快開發者的工作。其中,Laravel Validation是一種非常實用的功能,它可以幫助我們輕鬆驗證表單請求和使用者輸入的資料。本文就將介紹如何使用Laravel Validation驗證表單請求。

什麼是Laravel Validation

Laravel Validation是Laravel框架內建的表單驗證方式。它提供了一種簡潔規範、易於使用的方式來驗證表單請求和使用者輸入資料。你可以使用各種規則驗證各種資料類型,減少了程式碼冗餘,簡化了程式碼開發的流程。

如何使用Laravel Validation

首先,我們需要在控制器內use Laravel的Validation類別:

use IlluminateSupportFacadesValidator;
登入後複製

當我們需要驗證一個請求時,我們可以使用Validator: :make()方法:

public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name' => 'required|min:3|max:255',
        'email' => 'required|email|unique:users,email',
        'password' => 'required|min:8|confirmed',
    ]);

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

    // 在此处写入数据到数据库的逻辑
}
登入後複製

在上述程式碼中,我們使用了Validator::make()方法來定義驗證規則。傳遞給make方法的第一個參數是需要驗證的請求資料。第二個參數是定義驗證規則的數組,數組內的鍵是需要驗證的欄位名稱,值是字串形式的驗證規則。

在上述程式碼中,我們定義了三個欄位:

  • name:必需、最小字元數為3、最大字元數為255
  • email:必要、郵件格式、唯一性驗證
  • password:必要、最小字元數為8、且password_confirmation欄位符合

如果有任何一個規則驗證失敗,我們會將錯誤訊息傳回給註冊頁面,並使用withInput()方法傳回使用者先前提交的資料。

常用的驗證規則

使用Laravel Validation時,有許多規則可供使用。以下列出了一些常用的規則:

  • required:該欄位必須填入
  • email:該欄位必須符合電子郵件地址規格
  • unique:table_name, field_name:此欄位的值在指定的資料表內必須唯一
  • min:num:此欄位最小的長度必須為num個字元
  • max:num:此欄位最大的長度必須為num個字元
  • numeric:此欄位必須為數字
  • integer:此欄位必須為整數
  • alpha:此欄位必須為單字字元(a-z、A-Z)
  • alpha_num:此欄位必須為字母、數字字元
  • confirmed:此欄位必須與名為field_name_confirmation的欄位值相符

這些規則只是驗證規則的一部分,你也可以使用更多的規則來驗證資料。你可以在Laravel的文檔中找到更詳細的驗證規則清單。

自訂驗證規則

有時候,我們需要自訂規則來驗證資料。在Laravel中,我們可以使用Validator::extend()方法實作自訂驗證規則。以下是一個自訂規則的範例:

Validator::extend('phone_number', function ($attribute, $value, $parameters, $validator) {
    return preg_match('/^1[3-9][0-9]{9}$/', $value);
});
登入後複製

在這個範例中,我們定義了一個自訂規則“phone_number”,它會驗證$formData['phone_number']是否符合你自己定義的規格。如果驗證成功,回傳true,否則回傳false。

自訂錯誤訊息

我們也可以自訂錯誤訊息,來讓錯誤訊息更人性化。以下是一個自訂錯誤訊息的範例:

$validator = Validator::make($request->all(), [
    'email' => 'required|email|unique:users,email',
    'password' => 'required|min:8|confirmed',
]);

// 自定义错误信息
$validator->setAttributeNames([
    'email' => '邮箱',
    'password' => '密码',
]);

// 自定义错误信息模板
$validator->setCustomMessages([
    'required' => ':attribute字段不能为空',
    'email' => '请输入正确的邮箱地址',
    'unique' => ':attribute已经被占用了',
    'min' => ':attribute长度不能小于:min个字符',
    'confirmed' => '密码和确认密码不匹配',
]);
登入後複製

在上述程式碼中,我們使用了setAttributeNames()方法來更改欄位名稱,以使錯誤訊息更具人性化。我們還使用了setCustomMessages()方法來定義錯誤訊息模板,以便更簡單快速地更改錯誤訊息,並使其更加人性化。

總結

透過上述的介紹,我們了解如何使用Laravel Validation驗證表單請求。這樣可以避免因為使用者的輸入不正確造成的錯誤,並且可以更方便地處理錯誤訊息,節省開發時間。 Laravel Validation能夠更好地保障應用程式的穩健性和安全性。

以上是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.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 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)

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

Laravel - Artisan 指令 - Laravel 5.7 提供了處理和測試新指令的新方法。它包括測試 artisan 命令的新功能,下面提到了演示?

Laravel - Artisan 控制台 Laravel - Artisan 控制台 Aug 27, 2024 am 10:51 AM

Laravel - Artisan Console - Laravel 框架提供了三種主要的命令列互動工具,分別是:Artisan、Ticker 和 REPL。本章詳細介紹了 Artisan。

Laravel - 分頁自訂 Laravel - 分頁自訂 Aug 27, 2024 am 10:51 AM

Laravel - 分頁自訂 - Laravel 包含分頁功能,可協助使用者或開發人員包含分頁功能。 Laravel 分頁器與查詢產生器和 Eloquent ORM 整合。自動分頁方法

在Laravel中如何獲取郵件發送失敗時的退信代碼? 在Laravel中如何獲取郵件發送失敗時的退信代碼? Apr 01, 2025 pm 02:45 PM

Laravel郵件發送失敗時的退信代碼獲取方法在使用Laravel開發應用時,經常會遇到需要發送驗證碼的情況。而在實�...

Laravel計劃任務不執行:schedule:run命令後任務未運行怎麼辦? Laravel計劃任務不執行:schedule:run命令後任務未運行怎麼辦? Mar 31, 2025 pm 11:24 PM

Laravel計劃任務運行無響應排查在使用Laravel的計劃任務調度時,不少開發者會遇到這樣的問題:schedule:run...

在 Laravel 中,如何處理郵件發送驗證碼失敗的情況? 在 Laravel 中,如何處理郵件發送驗證碼失敗的情況? Mar 31, 2025 pm 11:48 PM

Laravel郵件發送驗證碼失敗時的處理方法在使用Laravel...

在dcat admin中如何實現點擊添加數據的自定義表格功能? 在dcat admin中如何實現點擊添加數據的自定義表格功能? Apr 01, 2025 am 07:09 AM

在dcatadmin(laravel-admin)中如何實現自定義點擊添加數據的表格功能在使用dcat...

Laravel - 轉儲伺服器 Laravel - 轉儲伺服器 Aug 27, 2024 am 10:51 AM

Laravel - 轉儲伺服器 - Laravel 轉儲伺服器隨 Laravel 5.7 版本提供。先前的版本不包括任何轉儲伺服器。轉儲伺服器將成為 laravel/laravel Composer 檔案中的開發依賴項。

See all articles