注意请不要建议使用Eloquent,这是专门针对Laravel查询构建器的。
出于性能原因,我们使用Query Builder从表中检索结果:
DB::table('posts')->get();
如果我们想将一个关系连接到该查询上:
DB:table('posts')
->leftJoin('comments', 'posts.id', '=', 'comments.post_id')
->get();
结果合并到每个帖子的数组中:
[
'id' => 1,
'title' => 'My Blog Post',
'content' => '<h1>This is a post</h1><p>hello world</p>',
'post_author' => 'Billy',
'comment' => 'This is a comment',
'comment_author' => 'Andrew',
]
如何将连接的结果放入嵌套数组中?例如:
[
'id' => 1,
'title' => 'My Blog Post',
'content' => '<h1>This is a post</h1><p>hello world</p>',
'post_author' => 'Billy',
'comment' => [
'id' => 22,
'comment' => 'This is a comment',
'comment_author' => 'Andrew',
],
]
5条答案
按热度按时间yb3bgrhw1#
不要认为它是可行的开箱即用没有雄辩。
你可以走原始路线:
ddarikpa2#
由于你使用的是DB facade而不是Eloquent,并且不能使用内置的
with()
方法,所以你必须自己实现它:如果你想摆脱
post_id
的评论条目,你可以这样做:(我猜运行时将类似于
with()
,因为毕竟MySql不提供开箱即用的功能)。nxagd54h3#
这里有一些新的信息:
我不知道这是不是工作,但你可以试试
xwmevbvl4#
你可以试试这个
但是您可能还需要对注解进行解码
kmbjn2e35#