嵌套热切加载中的laravel选择



我有一个数据库如下:

Project
_______
id,  project_name, customer_id
431, test,         2
Customer
________
id, customer_name
2,  good_customer
Loe
___
id, mandays, project_id
1,  10,      431

我想在laravel中使用雄辩的系统,并获得以下选择:

{loe_id:1,mandays:10,project_id:431,project_name:'test',customer_id:2,customer_name:'good_customer'}

我试过:

$project_loes = Loe::with(['project' => function($query) {
return $query->select(['id', 'project_name']);
}])
->where('project_id',$id)
->get();

已经在那里了,我正在阻止,因为我得到了一个嵌套的结果,比如:

{loe_id:1,mandays:10,project:{id:431,project_name:'test'}}

所以这不是在一行中,当我想把所有的结果都放在一个{}中时,我在项目中得到了另一个{}。

然后我不知道如何拥有嵌套的部分,我已经尝试过:

$project_loes = Loe::with(['project' => function($query) {
return $query->select(['id', 'project_name']);
},
'project.customer' => function($query) {
return $query->select(['id', 'customer_name']);
}])
->where('project_id',$id)
->get();

但它让我回到了一个错误,它与项目有关。客户。

U需要使用联接

$loe = DB::table('loe')
->join('project', 'loe.project_id', '=', 'project.id')
->join('customer', 'customer.id', '=', 'project.customer_id')
->get();

最新更新