负载计数 Laravel

问题描述 投票:0回答:1

是否可以在负载内计数

我有这样的情况:

$offer->load([
           'coupons', 'coupons.couponItems' => function ($query) {
            $query->select('id', 'name');
        }, 'coupons.userCoupons' => function ($query) {
            $query->select('id', 'coupon_id');
        },
    ]);

我想数数

userCoupons

如果没有,最好的解决方案是什么? 谢谢你

php mysql laravel eloquent
1个回答
1
投票

您可以尝试在加载调用后添加

->loadCount()
。不幸的是,由于复杂性,Laravel 目前不支持点表示法,因此
->loadCount('coupons.userCoupons')
将不起作用。

您可以在您的 Offer 模型上添加

HasManyThrough
关系,但是,例如

    public function UserCoupons(): HasManyThrough
    {
       return $this->hasManyThrough(UserCoupon::class, Coupon::class);
    }

然后你就可以做一个

$offer->loadCount('UserCoupons')

© www.soinside.com 2019 - 2024. All rights reserved.