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

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

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


当前回答

$user = User::where('email', request('email'))->first();
return (count($user) > 0 ? 'Email Exist' : 'Email Not Exist');

其他回答

简单地用这个来判断真假 $ user =用户::(“电子邮件”、“=”,输入::('邮件'))- >存在(); 如果你想要$user with result,你可以使用这个, $ user =用户::(“电子邮件”、“=”,输入::('邮件'))- > ();

像这样检查结果,

if(count($user)>0){}

你也可以用这个, $ user =用户::(“电子邮件”、“=”,输入::('邮件')); 如果存在($ user - > ()) { $user = $user->get(); }

在if语句中检查null可以防止Laravel在查询结束后立即返回404。

if ( User::find( $userId ) === null ) {

    return "user does not exist";
}
else {
    $user = User::find( $userId );

    return $user;
}

如果找到用户,它似乎会运行双重查询,但我似乎找不到任何其他可靠的解决方案。

我解决了这个问题,使用empty()函数:

$user = User::where('email', Input::get('email'))->get()->first();
//for example:
if (!empty($user))
    User::destroy($user->id);

如果你想插入一个唯一的记录,你可以使用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());
if (User::where('email', 'user@email.com')->first()) {
    // It exists
} else {
    // It does not exist
}

如果只需要检查是否存在,请使用first(),而不要使用count()。

First()更快,因为它检查单个匹配,而count()计数所有匹配。