2014-12-01 87 views
0

在我的數據庫,我的組織表這個表有以下關係的關係,laravel返回與口才,laravel

許多一對多與用戶 許多一對多與客戶 一到多與項目

反過來,這些關係具有例如其他關係項目

一到一個與客戶

在我的控制,我做以下,

$organisation = Organisation::all(); 

    $organisation->load('users'); 
    $organisation->load('clients'); 
    $organisation->load('teams'); 
    $organisation->load('projects'); 

    return Response::json($organisation, 200); 

因此得到所有的組織和關係數據。

但是我想要做的也是獲得關係的關係,例如獲得與組織每個項目相關的客戶端?我認爲做我所做的事情會有效果,但顯然不是。

這裏是我的模型,

組織,

class Organisation extends Eloquent { 

//Organsiation __has_many__ users (members) 
public function users() 
{ 
    return $this->belongsToMany('User')->withPivot('is_admin'); 
} 

//Organisation __has_many__ clients 
public function clients() 
{ 
    return $this->belongsToMany('Client'); 
} 

//Organisation __has_many__ projects 
public function projects() 
{ 
    return $this->belongsToMany('Project'); 
} 

}

項目

類項目擴展雄辯{

protected $fillable = [ 
    'name', 
    'description', 
    'total_cost', 
    'start_date', 
    'finish_date', 
    'sales_person', 
    'project_manager', 
    'client_id', 
    'organisation_id', 
    'user_id' 
]; 

public function organisations() 
{ 
    return $this->belongsToMany('Organisation'); 
} 

public function salesperson() { 
    return $this->belongsTo('User', 'sales_person'); 
} 

public function clients() { 
    return $this->belongsTo('Client', 'client_id'); 
} 

}

客戶

class Client extends Eloquent { 

    public function organisations() 
    { 
     return $this->belongsToMany('Organisation'); 
    } 

    public function users() 
    { 
     return $this->belongsToMany('User'); 
    } 

    public function projects() 
    { 
     return $this->hasMany('Project'); 
    } 
} 

回答

0

你試過:

$organisations = Organisation::with('projects', 'projects.clients')->all(); 

foreach($organisations as $organisation) { 

    foreach($organisation->projects as $project) { 

     foreach($project->clients as $client) { 

      echo $client->name; 

     }    

    } 

}