我的 Workshop 模型与 User 模型有这种关系。 user_workshop 是数据透视表。
public function users(): BelongsToMany
{
return $this->belongsToMany(User::class, 'user_workshop')
->withPivot('num_attending', 'price', 'paid_at');
}
我想获得已售位置(位置)的数量。一个用户可以购买 1 或 2 个位置。在长丝表中,我正在尝试
->sum('users', 'user_workshop.num_attending')
这会产生这个查询
select `workshops`.*, (select sum(`user_workshop`.`num_attending`) from `users` inner join `user_workshop` on `users`.`id` = `user_workshop`.`user_id` where `workshops`.`id` = `user_workshop`.`workshop_id` and `users`.`deleted_at` is null) as `users_sum_users_workshopnum_attending` from `workshops` where `workshops`.`event_id` = 3 and `workshops`.`event_id` is not null limit 10 offset 0
当我直接查询数据库时,我在users_sum_users_workshopnum_attending
下得到了
正确结果。
在灯丝中我正在尝试这个(但该列是空白的)
TextColumn::make('users_sum_users_workshopnum_attending')
->sum('users', 'user_workshop.num_attending')
->label('Sold'),
有什么想法吗?
要显示表中关系的计数,您可以使用
->counts()
TextColumn::make('users_sum_num_attending')->sum('users', 'num_attending'),
更多详情可以查看灯丝柱关系