【发布时间】:2016-09-03 19:54:49
【问题描述】:
我有 3 个模型
userhelperorder
user 使用 多对多 helper_user 数据透视表连接到 helper,并使用 多对多 连接到 orders > order_user 数据透视表。
我可以轻松选择helpers的users by
class Helper extends Model {
...
public function users() {
return $this->belongsToMany('App\User')
}
...
}
我可以很容易地选择user的orders by
class User extends Model {
...
public function orders() {
return $this->hasMany('App\Order');
}
...
}
但是如何选择helper的orders呢?
我试过了:
class Helper extends Model {
...
public function orders() {
return $this->users()->join('orders', 'users.id', '=', 'orders.user_id')->select('orders.*');
}
...
}
这会返回orders,但他们的类是App\User。
【问题讨论】:
-
helper和order通过user表连接。不知道你如何定义这种关系。但是您可以使用 foreach 循环轻松获取helper's order's。foreach($helper->users as $user) $helpers_orders[] = $user->orders->toArray();.
标签: mysql laravel laravel-5 eloquent