据我所知,这个问题可能有多个与DBMS相关的答案,但可能没有,所以就这样了。
所以,我需要我的应用程序从后端异步获取一些数据,比如User
和他的Posts
。我在前端使用Vue2和Axios,所以写下这样的东西会很好:
mounted: function() {
axios.get('/users')
.then((response) => {
this.users = response.data;
})
.catch(function (err) {
// Handle this
});
}
我希望得到的结果是,我的VueVM数据中的users
对象还包含每个posts
的{{1}}数组。目前我在后端控制器中构建一个自定义关联数组,如下所示:
User
或者,在可行的情况下,我使用$posts = Post::where('user_id', $id)->get();
return json_encode(['user' => $user, 'posts' => $posts]);
方法,这也非常方便,但我发现这个解决方案非常难看并且缺乏可重用性。
使用Mongoose和MongoDB,我会使用has_many
方法,但我找不到(我实际上不知道如何搜索它)与Eloquent等效。
有什么建议吗?
答案 0 :(得分:1)
如果您在用户模型中定义了posts()关系,则在检索用户时,您可以急切加载相关数据:
$users = User::with('posts')->get();
或特定用户:
$user = User::with('posts')->find($id);
然后$user->posts
将包含相关Post模型的集合。