如何在 laravel 中检查模型的对象是不是为空?
Posted
技术标签:
【中文标题】如何在 laravel 中检查模型的对象是不是为空?【英文标题】:How to check object of a model is empty in laravel?如何在 laravel 中检查模型的对象是否为空? 【发布时间】:2015-06-19 23:10:42 【问题描述】:我正在使用以下代码使用模型访问我的数据库。
$persons = WysPerson::where('family_id', $id)->get();
我使用以下代码检查了$persons
是否为空。
if($persons)
var_dump($persons);
其实$persons
是空的。但我得到var_dump
的结果为
object(Illuminate\Database\Eloquent\Collection)#417 (1) ["items":protected]=> array(0)
如何检查$persons
是否为空?有人可以帮忙吗?
【问题讨论】:
@Naruto 集合不是数组。 isEmpty 是正确的方法,Angel 回答如下 Eloquent collection: counting and detect empty的可能重复 【参考方案1】:你可以使用 isEmpty 方法:
http://laravel.com/api/5.0/Illuminate/Support/Collection.html#method_isEmpty
【讨论】:
我尝试使用 isEmpty 像 "var_dump(isEmpty($persons));" .. 但我收到错误“调用未定义函数 isEmpty()”? 它是一个集合的方法,你应该调用 $persons->isEmpty();【参考方案2】:使用计数功能
@if (count($persons))
【讨论】:
您的回答有问题,如果您忘记使用 ->get() 执行查询而只是将查询留在原处,count 将返回 1。isEmpty 将抛出异常事情的计划更好。 在 Laravel 集合之前检查集合计数是行不通的【参考方案3】:如果你有 eloquent 集合,请像这样调用函数isEmpty()
:
$persons->isEmpty();
这返回真或假。 希望这会有所帮助。
【讨论】:
【参考方案4】:试试这个。
is_null($var)?abort('empty'):abort('filled')
【讨论】:
【参考方案5】:您可以使用 isEmpty() 方法。
同时,您可以在获取数据之前通过简单的 count() 方法进行检查。
$count = WysPerson::where('family_id', $id)->count();
if($count==0)
return redirect()->back()->withErrors('Empty Data');
$persons = WysPerson::where('family_id', $id)->get();
【讨论】:
以上是关于如何在 laravel 中检查模型的对象是不是为空?的主要内容,如果未能解决你的问题,请参考以下文章