Laravel Eloquent:检测是否为空或计数

6
主要问题是如何检测一个精炼的集合结果是否为空,laravel建议如何识别呢?
我有两个不同的问题,也许它们彼此相关或者不相关,
第一个问题:
我如何获得 $result=$user->delete() 或 $result=$user->save() 方法的结果?
我的意思是检查操作是否完成或没有完成。
对于这个问题,使用 if($result){...} 是正确或者足够的吗?
第二个问题:
什么是获取 User::where(conditions)->get() 是否为空的正确方法?
请向我展示覆盖所有情况的正确方法。

首先,始终请查阅API文档或PHPDoc块。它应该说明期望的返回类型/值。 - Devon
4个回答

3

删除和保存是同步进行的,除非出现异常,否则可以肯定它们已经完成。

对于第二个问题,您可以这样做:

User::where(conditions)->count();

在集合中还有isEmptyisNotEmpty方法。

另一种方式是使用 exists/doesntExist:

User::where(conditions)->exists(); // or doesntExist()

1
1)是的,没问题。或者你可以使用。
if($user->delete()) {
  return true;
} else {
  return false;
}

2)您可以使用函数empty()
$result = User::where(conditions)->get()
if (!empty($result)) { 
 // if it is not empty, do the following...
}

1

#1

if($user->delete())
  return true;
    else
  return false;

if($user->save()){
  return true;
}

#2

为了确定是否有任何结果,您可以执行以下任一操作:

if (!$user->isEmpty()) { }
if ($user->count()) { }
if (count($user)) { }

注释/参考资料

http://laravel.com/api/5.6/Illuminate/Database/Eloquent/Collection.html#method_first http://laravel.com/api/5.6/Illuminate/Database/Eloquent/Collection.html#method_isEmpty http://laravel.com/api/5.6/Illuminate/Database/Eloquent/Collection.html#method_count http://laravel.com/api/5.6/Illuminate/Database/Eloquent/Collection.html#method_count


1

第一步

$user->delete()$user->save() 都会返回 true 或 false。因此,你可以这样做。

if($user->save())
    return true;
else
    return false;

第二

根据您的陈述。

$result = User::where(conditions)->get();    
if(count($result)
     return true;
else
     return false;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接