laravel 5.4 - 将用户输入与db值进行比较

时间:2017-08-05 14:09:11

标签: php database laravel laravel-5.4

我使用了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('/');
    }

}

1 个答案:

答案 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
}