Laravel 表单验证的一个问题,谢谢大家?
protected function validator(array $data)
{
$ip = DB::table('users')->whereRaw('ip = ? and created_at > ?', [get_client_ip(), Carbon::now()->subMinutes(60)])->count();
$data = array_add($data,'ip',(string)$ip);
return Validator ::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'captcha' => 'required|captcha',
'ip' => 'required|same:0',
], [
'captcha.required' => '请输入验证码!',
'captcha.captcha' => '验证码错误',
"ip.same" => "同一IP在60分钟内无法再次注册",
]);
}
追加的IP字段假如不等于0的话就提示错误,等于0的时候就默认通过验证.
请问我这段验证哪里错了?不管数据库返回0还是1都会提示同一IP在60分钟内无法再次
你的字段验证用错了。
same
的用法是看是否匹配另一个字段,比如这样的验证字段值和指定的 字段( field ) 值是否相同。 same后要写验证的字段 不是值
@DavidNineRoc 非常感谢哥们~