Laravel Eloquent:检测为空或计数
Posted
技术标签:
【中文标题】Laravel Eloquent:检测为空或计数【英文标题】:Laravel Eloquent: Detect is empty or count 【发布时间】:2019-01-15 14:33:06 【问题描述】:主要问题是如何检测一个 eloquent 集合结果是否为空,laravel 建议如何识别这一点?
我对此有两个不同的问题,也许它们彼此相关或不相关,
第一个:
我怎样才能得到
$result = $user->delete()
OR$result = $user->save();
方法的结果?
我的意思是检查操作是否完成
为此使用if($result)...
是否正确或足够?
第二个:
获取
$result =User::where(conditions)->get()
是否为空的正确方法是什么?
请告诉我涵盖所有情况的正确方法,
【问题讨论】:
首先,请始终查阅 API 文档或 phpDoc 块。它应该说明期望的返回类型/值。 【参考方案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
【讨论】:
【参考方案2】:删除和保存是同步的,所以除非抛出异常,否则可以安全地完成。
对于第二个问题,你可以这样做:
User::where(conditions)->count();
还有isEmpty
和isNotEmpty
用于收藏。
另一种方式是使用exists/doesntExist:
User::where(conditions)->exists(); // or doesntExist()
【讨论】:
【参考方案3】:第一
$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;
【讨论】:
【参考方案4】: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...
【讨论】:
以上是关于Laravel Eloquent:检测为空或计数的主要内容,如果未能解决你的问题,请参考以下文章