我刚来拉拉维尔。如何查找是否存在记录?

$user = User::where('email', '=', Input::get('email'));

我能做什么来查看$user是否有记录?


当前回答

在laravel雄辩中,有默认的exists()方法,参考下面的例子。

if (User::where('id', $user_id )->exists()) {
    // your code...
}

其他回答

我认为下面的方法是达到同样目的的最简单的方法:

    $user = User::where('email', '=', $request->input('email'))->first();
    if ($user) {
       // user exist!
    }else{
       // user does not exist
    }

最好的解决方案之一是使用firstOrNew或firstOrCreate方法。文档中有更多关于这两者的详细信息。

如果你想插入一个唯一的记录,你可以使用laravel验证:

$validated = $request->validate([
    'title' => 'required|unique:usersTable,emailAddress|max:255',
]);

但是你也可以用这些方法:

1:

if (User::where('email',  $request->email)->exists())
{
  // object exists
} else {
  // object not found
}

2:

$user = User::where('email',  $request->email)->first();

if ($user)
{
  // object exists
} else {
  // object not found
}

3:

$user = User::where('email',  $request->email)->first();

if ($user->isNotEmpty())
{
  // object exists
} else {
  // object not found
}

4:

$user = User::where('email',  $request->email)->firstOrCreate([
      'email' => 'email'
],$request->all());
$user = User::where('email', '=', Input::get('email'))->first();
if ($user === null) {
   // user doesn't exist
}

可以写成

if (User::where('email', '=', Input::get('email'))->first() === null) {
   // user doesn't exist
}

这将返回true或false,而不分配临时变量,如果这是你在原始语句中使用$user的全部目的。

这将检查用户表中是否存在所请求的电子邮件:

if (User::where('email', $request->email)->exists()) {
   //email exists in user table
}