当前位置: 首页 > 知识库问答 >
问题:

检查模型返回是否导致laravel[重复]的最佳方法

王曜文
2023-03-14

我对Laravel还比较陌生,正在寻找检查模型是否返回任何结果的最佳方法。

如果未找到结果,下面的示例将返回null。如果你只想要第一个结果,这是完美的。

$results = FooBar::where(['col' => 'someVal', 'col3' => 'value'])->first();

下面的示例将返回一个对象,而不管是否有任何结果。

$results = FooBar::where(['col' => 'someVal', 'col3' => 'value'])->get();

因此,我现在不得不这样做,每次:

if($results && count($results)) {
     // then do stuff
}

我有调用各种模型的方法,所有这些count()函数的代码看起来既丑陋又低效。

仅供参考,由于我们的PHP版本(不在我的控制范围内),我目前正在使用Laravel 5.1。

共有1个答案

施选
2023-03-14

你的条件太复杂了,因为你不能同时做这两件事-

if ($result !== null) {
    ...

对于调用get()或在返回集合的常规方法中,您将始终得到它。但它可以是空的。事实上,您不需要知道您的集合存储了多少结果。您只需要知道是否至少得到一个,因此只需调用集合对象上的isEmpty()

if (!$collection->isEmpty()) {
  ...

查看收藏文档

 类似资料:
  • 问题内容: 我正在寻找检查并查看查询是否返回任何结果的最佳方法。我觉得我经常写这部分代码,有时会出错,有时却没有。 例如,我运行此查询以检查是否存在用户名,然后再将新用户名插入数据库。 然后,我想检查一下是否返回了任何结果。这是我这样做的一种方式: 如果第一种方法不起作用,那么有时它将: 然后,我什至看到前几天可以这样做: 做这个的最好方式是什么? 问题答案: 对于PHP 5和7及更高版本,请使用

  • 我必须使用一个c函数(),它在失败时返回标量、或。 这适用于以下故障: 但对于有效的论点,我得到: 如何检查呼叫是否成功?

  • 问题内容: 我有一个游标,带有来自选择的值,我想根据我是否发现任何行来做点什么。 这似乎不起作用,有帮助吗? 问题答案: 您需要在使用%FOUND属性之前对游标执行FETCH。将您的代码更改为类似 请注意,您可能需要将变量添加到FETCH语句的INTO子句中,在TABLE1和TABLE2中的每一列都需要添加一个变量。还要注意,编写此游标的方式可能会获得比预期更多的返回行。因为没有指定连接条件,所以

  • 问题内容: 这个问题已经在这里有了答案 : type()和isinstance()有什么区别? (7个答案) 7年前关闭。 我需要知道Python中的变量是字符串还是字典。以下代码有什么问题吗? 更新 :我接受了avisser的回答(尽管如果有人解释了为什么首选,我会改变主意)。 但是要感谢Nakedfanatic提醒我,使用dict(作为案例陈述)通常比使用if / elif / else系列更

  • 问题内容: 我有一个口才的模型,其中有一个相关的模型: 创建模型时,它不一定具有相关的模型。更新时,可能会添加一个选项,也可能不会添加。 因此,我需要检查相关模型是否存在,以分别对其进行更新或创建: 我要查找的代码在哪里。 问题答案: 在 php 7.2+中, 您不能在关系对象上使用,因此对于所有关系都没有一种万能的方法。使用查询方法代替@tremby,如下所示: 适用于所有关系类型的通用解决方案