我有这个reference_id变量,我想在我的网站上禁止注册。基本上,如果你没有输入一个正确匹配列表(~5-10)值中的一个值的reference_id,那么我想把它们转走。与您如何仅将TEST放入电子邮件字段中的情况类似,它会阻止您并说“嘿,这不是有效的电子邮件!”#。
我将这个逻辑放在哪里?我已经粘贴了我的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'],
]);
}
答案 0 :(得分:0)
使用in
验证规则。此规则的优点是它独立于源且与格式无关:
$allowedValues = implode(',', config('my.allowedKeys'));
// Or:
$allowedValues = implode(',', Reference::pluck('id')->toArray());
....
'reference_id' => 'max:255|in:'.$allowedValues,
如果您愿意,还可以为此规则添加custom validation message。
答案 1 :(得分:0)
如果表格中存在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
希望这有助于你......
如果有任何查询,请告诉我。