Laravel-Fluent查询基于是否存在行进行更新或插入


Laravel Fluent query update or insert based on if row exists

我有一个Laravel Fluent查询,如下所示:

$query = DB::connection('mysql_users')->table('users_info');
$exists = $query->where('email', '=', $user->email)-first();
if(is_object($exists)) {
    // update email
}
else {
    // insert email
}

问题是,有时即使行确实存在,$exists也不是对象。我也尝试过is_null(),但也遇到了同样的问题。进行此检查的正确方法是什么?

只需检查语句,如果它不是对象,则不检查对象。

if($exists = $query->where('email', '=', $user->email)-first()) {
    // update email
}
else {
    // insert email
}