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

调用未定义的方法照亮\数据库\查询\生成器::在急切加载laravel时为空

颜嘉福
2023-03-14

我有一个购物车模型如下:

class Cart extends Model
    {
        protected $table = 'cart';

        protected $fillable = ['user_id', 'delivery_method'];

        public function products ()
        {
            return $this->belongsToMany(Product::class, 'cart_products', 'cart_id', 'product_id')->withPivot('quantity');
        }

    }

和购物车表列为:

id
user_id
delivery_method
created_at
updated_at

还有一个名为cart\u products的透视表,用于将Card模型与Product模型关联起来。

假设我有一个特定的$user\u id变量。现在,我想要一个带有用户id的购物车和他们的产品。为此,我写了这篇文章:

$cartWithProducts = Cart::with('products')->where(['user_id' => $user_id])->first();

if (!$cartWithProducts->isEmpty()) {
//Some codes come here
}

但在运行之后,我得到了以下错误:

Call to undefined method Illuminate\Database\Query\Builder::isEmpty() {"exception":"[object] (BadMethodCallException(code: 0): Call to undefined method Illuminate\\Database\\Query\\Builder::isEmpty() at D:\\wamp\\www\\barlly\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php:2461

我不想使用懒惰加载方法,因为n查询问题。

此外,每个用户在同一时间只能有一个购物车。

共有3个答案

赵宏达
2023-03-14

first()如果用户没有购物车,则返回null,因此如果要检查购物车是否为空,可以使用is_null()empty()而不是如果(!$cartWithProducts)保持可读性:

if (is_null($cartWithProducts))
薛寒
2023-03-14

期望您可以为指定的用户提供多个推车,并且您可以进行多个推车,我建议您这样做:

$cartWithProducts = Cart::whereUserId($user_id)->with('products')->get();

if ($cartWithProducts->isNotEmpty()) {
    //Some codes come here
}
韶亮
2023-03-14

你可以直接打电话

if ($cartWithProducts) {
//Some codes come here
}

把这个答案读一遍

 类似资料:
  • 我有点困惑,我调用了 我的中的方法如下所示: 我不知道我做错了什么但我现在有点迷茫

  • 我正在尝试在Laravel5.6上运行php artisan db:seed。39和获取错误: 方法照明\数据库\查询\生成器::提供不存在。 报价型号代码: 任务模型 数据库种子文件 我做得不对的是什么?

  • 我正在尝试用Laravel 5.2设置PHPUnit。我按照留档进行了简单的单元测试,但是每个测试都会抛出相同的错误: 1) CreateAccountTest::testCreateUserWithInvalidEmail BadMethodCallException:调用未定义的方法Illumb\Database\Query\Builder::make() /some/path/vendor/

  • 有一个典型的我与邮政 职位模型: 迁移后: 评论模型: 评论迁移: 我想在拉威尔使用渴望加载。 例如我怎样才能使用“急切加载”获得他最近评论的所有帖子? 我试过这个: 但像这样,我得到了所有的评论。需要帮忙吗? 最好的问候 编辑: Foreach语句(Blade):

  • 我通过提示检查了它在EclipseLink中的工作情况: 这个链接http://blog.ringerc.id.au/2012/06/jpa2-is-very-inflexible-with-eagerlazy.html暗示通过Hibernate是不可能的,建议手动获取。但是,我无法理解如何通过HQL或标准来实现它,特别是如何获得不在实体上但仅存在于数据库上的child.parent_id列。即避

  • 我正在使用Laravels查询生成器检索带有一些筛选选项的项目列表-我需要在此查询中进行计数: 计算“Freestyle ID”在likes表中出现的次数。 这有可能吗?返回的数据是完美的,我只需要一个自由泳的喜欢量,其中喜欢表中的自由泳ID为空。