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

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

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


当前回答

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

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

其他回答

如果你想在数据库中插入一条记录,而相同邮件的记录不存在,那么你可以这样做:

$user = User::updateOrCreate(
    ['email' => Input::get('email')],
    ['first_name' => 'Test', 'last_name' => 'Test']
);

updateOrCreate方法的第一个参数列出了唯一标识关联表中的记录的列,而第二个参数由要插入或更新的值组成。

你可以在这里查看文档:Laravel upserts doc

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

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

在你的控制器中

$this->validate($request, [
        'email' => 'required|unique:user|email',
    ]); 

在您的视图-显示已经存在的消息

@if (count($errors) > 0)
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

要知道是否有记录是很简单的

$user = User::where('email', '=', Input::get('email'))->get();
if(count($user) > 0)
{
echo "There is data";
}
else
echo "No data";
if (User::where('email', Input::get('email'))->exists()) {
    // exists
}