Laravel Eloquent:从内部函数

时间:2016-05-17 07:01:00

标签: laravel-5 eloquent

我知道,我们可以在控制器中执行此操作:

User::with('post')->get();

它将根据users.id从数据库中获取每个用户的帖子。 但问题是,我想这样做:

User::with(['post' => function($query) {
    # Throw users.id here...
}])->get();

怎么做?

1 个答案:

答案 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);
});

注意:我没有测试上面的代码。这只是向您展示如何完成您想要做的事情的一个例子。