gpt4 book ai didi

mysql - laravel 通过另一个获取关系表

转载 作者:行者123 更新时间:2023-11-30 23:44:35 25 4
gpt4 key购买 nike

我有 3 个表:

users: (App\Users)
id|name|email

coupons: (App\Coupons)
id|coupon_code|user_id|discount

orders: (App\Orders)
id|order_id|total|coupon_code

我需要将用户与订单联系起来,这样我就可以按订单数进行排序,我正在尝试这样做:

订单功能属于App\User

public function orders()
{
return $this->hasManyThrough('App\Coupons', 'App\Orders', 'coupon', 'coupon_code');
}

有没有办法得到这个表的关系,所以我可以使用:

$users = App\Users->withCount('orders')->orderBy('orders_count', 'desc');

我可以通过以下方式得到正确的结果:

$coupons = App\Coupons::where('user_id', '=', $this->id);
return App\Orders::whereIn('coupon', $coupons->pluck('coupon_code'));

但是我无法对此列进行排序

最佳答案

对于描述中的表格,获取关系的方式应该如下:

public function orders()
{
return $this->hasManyThrough(
'App\Orders',
'App\Coupons',
'user_id', // Foreign key on Coupons table...
'coupon_code', // Foreign key on Orders table...
'id', // Local key on Users table...
'coupon_code' // Local key on Coupons table...
);
}

https://laravel.com/docs/5.5/eloquent-relationships#has-many-through

关于mysql - laravel 通过另一个获取关系表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47205618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com