我使用了laravel的make:auth并正在玩注册部分。我试图将用户的输入与我在数据库中已有的值进行比较,如果存在则用户将继续进行注册,如果不存在,则会将用户带到另一个页面。现在,在执行该功能后,它将直接将用户带到另一个页面。什么似乎是问题?
public function register(Request $request)
{
$name = $request->name;
$lastname = $request->lastname;
$check = DB::table('records')->where([
['firstname','=',$name],
['lastname','=',$lastname]
])->get();
if ($check===null) {
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
} else {
return redirect('/');
}
}
答案 0 :(得分:0)
get()
方法返回collection,因此如果没有记录$check
则类似于
$a = collect([]);
和
$a === null // returns false
$a->isEmpty(); // returns true
count($a); // returns 0
因此您可能希望在if
子句中使用不同的比较,这将是
如果存在则用户将进行注册
if (!$check->isEmpty()) {
// proceed to registration
} else {
// redirect
}