[英]Block registration if form input doesn't match accepted values using Laravel's auth (5.3)
我有這個reference_id變量,我想用來禁止在我的網站上注冊。 基本上,如果您輸入的reference_id與列表中的一個值(〜5-10)正確匹配,那么我想將其拒絕。 與僅在電子郵件字段中輸入“測試”的方式類似,它會阻止您並說“嘿,這不是有效的電子郵件!”。
我該把邏輯放在哪里? 我在下面粘貼了我的RegisterController,因為我認為它應該與電子郵件邏輯一起放在那里。 我可以輕松地創建一個變量並執行類似的操作
$rfid=reference_id
$list=array(list)
if ($rfid==$list) {
allow
}
else {
reject
}
但是,即使您可以說出這一點,我也不確定它到底將如何工作,或者在其余代碼中的位置。 任何方向將不勝感激!
RegisterController:
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
'reference_id' => 'max:255',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'reference_id' => $data['reference_id'],
]);
}
如果表中存在reference_id,則可以使用
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
'reference_id' => 'max:255|exists:table_name',
]);
}
如果有數組
使用in_array:$array_name
進行驗證
要正確了解可用的Laravel驗證規則,請參閱: https ://laravel.com/docs/5.3/validation#rule-exists
希望對您有幫助。
如有任何查詢,請通知我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.