Mysql laravel通过另一个数据库获取关系表

Mysql laravel通过另一个数据库获取关系表,mysql,laravel,laravel-5,laravel-5.2,laravel-eloquent,Mysql,Laravel,Laravel 5,Laravel 5.2,Laravel Eloquent,我有三张桌子: 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->

我有三张桌子:

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

他正在尝试按订单数量对用户进行排序。如果他在模型中进行了更正,他应该能够使用描述中的代码,$users=App\users->withCount('orders')->orderBy('orders_count','desc');,还是我错了@CamiloIs
$user->orders
是否返回预期结果?您确定关系定义良好吗?返回空,当您尝试修改模型时应该有itemsDid?正如文档中所示,您应该首先在hasManyThrough方法的参数中下订单,然后购买优惠券,并且在不符合laravel约定的情况下在表中指定外键的名称。但是我如何指定外键呢?在我给出的答案中有一个示例,试着像这样把它放在你的模型中,看看它是否返回了预期的结果,根据文档,这就是应该如何创建与方法hasManyThrough的关系