Laravel isNotEmpty()在雄辩模型上不起作用

时间:2019-05-15 11:13:30

标签: laravel

我可能对Eloquent感到困惑(再次...),但我认为这应该可行:

$test_row = Test::
            where('status', 'active')
            ->where('condition2', 'value')
            ->orderBy('order', 'asc')
            ->first();

        if($test_row->isNotEmpty())
            return $test_row;

但这会引发以下错误:Call to undefined method App\Test::isNotEmpty()

通过使用first()会返回口才模型吗?并且isNotEmpty()isEmpty()应该可以在返回的模型上使用吗?

2 个答案:

答案 0 :(得分:2)

您试图在模型对象而非集合上调用isNotEmpty(),当您使用first()时,它返回的对象不是集合。

使用

if($test_row)
{
    return $test_row
}

答案 1 :(得分:1)

方法isNotEmpty()实际上是由Laravels Collection类而不是Eloquent模型返回的。由于您不要求多个结果,因此仅返回模型而不是集合。

只需使用

if ($test_row) {
    return $test_row;
}

检查查询是否有任何结果以及模型是否存在。