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

}

проектов

Проект класса расширяет Eloquent {

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;

}

}

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]