doujiekeyan0622 2018-01-26 18:25
浏览 155
已采纳

在eager loading laravel上调用未定义的方法Illuminate \ Database \ Query \ Builder :: isEmpty

I have a Cart model like this :

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');
        }

    }

And cart table columns are :

id
user_id
delivery_method
created_at
updated_at

And there is a pivot table named cart_products to relate Card model to a Product Model.

Suppose I have an specific $user_id variable. now I want Cart with that user_id with their products. for that I wrote this :

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

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

But after run, I got this error :

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

I do not want to use lazy loading approach beacause n query problem. what is solution in this case?

Also each User can have only one Cart in time.

  • 写回答

3条回答 默认 最新

  • duanhai7274 2018-01-26 18:28
    关注

    you can just call

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

    Have a read over this Answer

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵