1. 程式人生 > >laravel 表單驗證

laravel 表單驗證

以下為我建立的一個 API Validator 的 VIM Code Snippet

$rsp = ['err_code' => 0, 'err_msg' => 'OK',];
$input = $request->all();

$rules = [
	'name' => 'required',
	'person_tel' =>'required|regex:/^1[0-9]{10}$/',
	'code' => 'required|digits:6',
];

$messages = [
	'name' => '請填寫公司名稱',
	'person_tel' => '請填寫正確的手機號',
	'code' => '請填寫正確的驗證碼',
];

$validator = Validator::make($input, $rules, $messages);
$validator->after(function ($validator) use ($request) {
	$redis_code = Redis::get(env('APP_NAME').'sms'.$request->get('person_tel'));
	if ($redis_code != $request->get('code')) {
		$validator->errors()->add('code', '驗證碼錯誤');
	}
});

if ($validator->fails()) {
	$rsp['err_code'] = -1;
	$rsp['err_msg'] = "資料校驗失敗";
	$rsp['data'] = $validator->errors()->all();
	return response()->json($rsp);
}

為何要使用 validator after

after 的呼叫時機是在主動呼叫 fails 的時候,這樣做非常方便去新增一些我們業務相關的自定義校驗規則