gpt4 book ai didi

php - laravel 返回与 eloquent 和 laravel 的关系

转载 作者:行者123 更新时间:2023-11-29 23:21:58 25 4
gpt4 key购买 nike

在我的数据库中,我是一个组织表,该表具有以下关系,

与用户的多对多与客户多对多与项目一对多

反过来,这些关系还有其他关系,例如项目

与客户一对一

在我的 Controller 中,我正在执行以下操作,

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

}

项目

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

最佳答案

你尝试过吗:

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

foreach($organisations as $organisation) {

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

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

echo $client->name;

}

}

}

关于php - laravel 返回与 eloquent 和 laravel 的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27234295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com