【发布时间】:2016-12-31 20:07:52
【问题描述】:
我有一些查询需要一段时间,因为集合很大。
我现在在没有活动记录的情况下直接通过 Laravel 查询构建器进行操作。
将两个表连接在一起时,表 B 中的字段将合并到表 A 中的结果中。
是否可以将该数据嵌套在子对象或数组中?
例如
\DB::table('posts')
->select('posts.id', 'posts.title', 'comments.name', 'comments.id')
->where('posts.status', '=', 'PUBLIC')
->leftJoin('comments', 'posts.comment_id', '=', 'comments.id')
->get();
返回类似:
{
id: 123,
title: 'My post',
name: 'Comment name',
// ...
}
我想去哪里:
{
id: 123,
title: 'My post',
comment {
name: 'Comment name',
// ...
}
// ...
}
【问题讨论】:
-
你也有posts和cmets作为模型吗?您可能可以通过关系和
with()来做到这一点。 -
如果不循环记录集并自己实现这个结构,我怀疑这是否可能。查询构建器只返回一个平面结果集,类似于您自己运行查询时所获得的结果。
标签: mysql database laravel eloquent laravel-5.3