Laravel 表單驗證規則:required、present 、filled 和 nullable

zhangbao發表於2017-07-11

三個概念

在解釋這四個驗證規則前,需要明晰三個概念——空值(empty)、輸入資料(input data)和驗證欄位(filed under validation)。

空值

在 Laravel 中,一個欄位值滿足下面任一條件都被視為空值。

  • null
  • 空字串('')。
  • 空陣列([])或空 Countable 物件。
  • 無路徑的上傳檔案。

輸入資料&驗證欄位

以註冊功能為例。

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

public function register(Request $request)
{
    $this->validator($request->all())->validate();

    ...
}

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:6|confirmed',
    ]);
}

$request->all() 就是「輸入資料」,Validator::make 裡的 nameemailpassword 就是「驗證欄位」。

驗證規則

required

驗證欄位必須出現在輸入資料中、不能為空。

present

驗證欄位必須出現在輸入資料中、能為空。

filled

驗證欄位可不在輸入資料中。

當驗證欄位出現在輸入資料中時,不能為空。

nullable

驗證欄位的值可以是 null

參考連結

https://learnku.com/docs/laravel/5.4/validation#av...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章