Laravel 5 检查结果的最佳方法是在Laravel中接收

Laravel 5 检查结果的最佳方法是在Laravel中接收,laravel-5,Laravel 5,我正在寻找最好的方法来检查是否有从LaravelSQL查询收到的任何结果。如果我只使用$ads->isEmpty,如果查询的执行条件不满足,则当查询尚未执行时会出现问题 若我只使用空的$ads,那个么当查询已经执行但并没有结果时就会出现问题——它仍然给出空值,所以它不再是空的 也许有一张更好的支票,而不是这两张 if (Session::has('city')) { $ads = \App\Ad::orderBy('id', 'desc')->get(); } if (empty

我正在寻找最好的方法来检查是否有从LaravelSQL查询收到的任何结果。如果我只使用$ads->isEmpty,如果查询的执行条件不满足,则当查询尚未执行时会出现问题

若我只使用空的$ads,那个么当查询已经执行但并没有结果时就会出现问题——它仍然给出空值,所以它不再是空的

也许有一张更好的支票,而不是这两张

if (Session::has('city')) {
    $ads = \App\Ad::orderBy('id', 'desc')->get();
}

if (empty($ads) or $ads->isEmpty()) {
    // do something
}
您可以选择始终确保$ads是一个集合

例如

更多关于

会话助手- 收集助手-
什么意思?在上面的代码中,$ads将始终是一个Laravel集合,无论是否包含项目。在我的问题中,$ads处于附加条件下,如果该条件不满足,$ads将为null…if Session::具有'city'?这仍然存在于我的代码中,但使用了三元运算符。是的。哦,现在我明白了。如果只有一种方法可以做到这一点,那么对我来说,增加额外的条件看起来更清楚,作为一个在拉雷维尔的新手:可能有很多方法可以达到你的要求。这是一种选择。A,与拉威尔无关。你可以阅读更多关于和。
$ads = session()->has('city')
    ? \App\Ad::orderBy('id', 'desc')->get()
    : collect();

if ($ads->isEmpty()) {
    // ...
}