【发布时间】:2016-07-13 16:56:28
【问题描述】:
我有 4 个表,其结构和流程如下:
User
Accounts
Contacts
Orders
关系如下:
$user->hasMany('accounts')->hasMany('contacts')->hasMany('orders');
/** User Model **/
class User extend Eloquent {
public function accounts(){
return $this->hasMany('Accounts');
}
public function contacts(){
return $this->hasManyThrough('Contact', 'Account', 'owner_id');
}
//how do I get this?
public function orders(){
}
}
/** Account Model */
class Account extends Eloquent {
public function $user(){
return $this->belongsTo('User');
}
public function contacts(){
return $this->hasMany('Contact');
}
}
/** Contact Model **/
class Contact extends Eloquent {
public function account(){
return $this->belongsTo('Account');
}
public function orders(){
return $this->hasMany('Order');
}
}
/** Order Model **/
class Order extends Eloquent {
public function contact(){
return $this->belongsTo('contact');
}
}
经典的hasManyThrough 是不可能的,因为我们有 4 个表。
如何创建关系,以便单个用户可以访问其订单,而无需链接每个模型的方法,例如:
User::find(8)->orders;
【问题讨论】:
标签: php laravel laravel-5 laravel-5.2