如何从Laravel

时间:2016-09-03 19:54:49

标签: mysql laravel laravel-5 eloquent

我有3个模特

  • user
  • helper
  • order

user已通过多对多 helper数据透视表与helper_user相关联,并通过orders连接多对多 order_user数据透视表。

我可以通过

轻松选择helpers' s user s
class Helper extends Model {
...
    public function users() {
        return $this->belongsToMany('App\User')
    }
...
}

我可以通过

轻松选择user' s order s
class User extends Model {
...
    public function orders() {
        return $this->hasMany('App\Order');
    }
...
}

但如何选择helper' order

我试过了:

class Helper extends Model {
...
    public function orders() {
        return $this->users()->join('orders', 'users.id', '=', 'orders.user_id')->select('orders.*');
    }
...
}

这会返回order个,但其类别为App\User

1 个答案:

答案 0 :(得分:3)

无需在辅助模型中为与订单的关系定义方法。您可以使用dot syntax获取订单。

$usersOrders = App\Helper::with('users.orders')->get();