我知道,我们可以在控制器中执行此操作:
User::with('post')->get();
它将根据users.id
从数据库中获取每个用户的帖子。
但问题是,我想这样做:
User::with(['post' => function($query) {
# Throw users.id here...
}])->get();
怎么做?
答案 0 :(得分:0)
您应首先获取用户,然后使用单独的查询加载相关帖子并手动合并。
$users = User::get();
$posts = Post::whereIn('user_id', $users->pluck('id'))->get(); // Get your additional data in this query
$users->each(function ($user) use ($posts)
{
$user->posts = $posts->where('user_id', $user->id);
});
注意:我没有测试上面的代码。这只是向您展示如何完成您想要做的事情的一个例子。