我有 2 张 table :
User:
id
schedule_id
name
Schedules:
id
date
我使用预加载
执行查询:
User::with (['schedules'])->get()->first();
得到这样的结果:
[
'id' => '3',
'schedule' => [
'id' => '13',
'date' => '20.11.2020',
],
'name' => 'John',
];
但是当我使用 join
执行类似的查询时,
User::join ('schedules', 'user.schedule_id', '=', 'schedules.id')->get()->first();
我得到了这样的结果,带有合并的数组:
[
'id' => '13',
'date' => '20.11.2020',
'name' => 'John',
];
如何使用 Eloquent 中的 join 获得分隔数组的结果?
注意:在原始 PHP 和 PDO 中,我总是为任何带有 join 的查询获取单独的数组。
最佳答案
来自数据库查询的数据将始终被格式化为平面数组,这就是数据库的工作方式。 Eloquent 在幕后有很多魔力,它将正确的相关值映射到集合中的正确模型。
使用联接时,Eloquent 无法知道哪些数据应映射到哪个关系或属性。
如果您想使用连接查询,则必须在模型上使用这些属性的别名。或者,您可以在使用数据之前按照您想要的方式手动映射属性。
关于php - Laravel:如何将连接表加载到子数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59305790/