在解釋這四個驗證規則前,需要明晰三個概念 —— 空值(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 里的 name、email 和 password 就是「驗證字段」。
驗證規則
required
驗證字段必須出現在輸入數據中、不能為空。
present
驗證字段必須出現在輸入數據中、能為空。
filled
驗證字段可不在輸入數據中。
當驗證字段出現在輸入數據中時,不能為空。
nullable
驗證字段的值可以是 null。