在子查询中使用父字段雄辩

时间:2017-09-08 13:18:02

标签: eloquent subquery lumen

我如何访问' id'第一个查询中的字段,并在此示例中的第二个子查询中使用它:

   $users = \App\User::where('active', 1)->where('deleted_at', null)->where('recieve_jobagent', 1)
        ->with(['companies' => function($query){

            $query->where('active', 1);

            $query->with(['posts' => function($posts){

                $posts->where('active', 1);

                $posts->whereHas('users', function($postUsers){


                    **I do not have access to 'users.id' here**
                    $postUsers->where('user_id', 'users.id');

                });

            }]);

        }]);

我使用流明5.1。

我的目标是让所有用户及其相关公司以及公司'与用户无关的帖子。

1 个答案:

答案 0 :(得分:1)

我认为您不需要这样做。您可以使用whereHas并通过深入关系来只返回属于您要查询的事物的关系。

在没有看到您的关系结构的情况下,我认为您需要这样的东西吗?

$users = \App\User::where('active', 1)->where('deleted_at', null)->where('recieve_jobagent', 1)
    ->whereHas('companies', function($query){
        $query->where('active', 1)
        ->whereHas('posts', function($query){
            where('active', 1);
        })
    })
    ->with(['companies' => function($query){
        $query->where('active', 1);
        $query->with(['posts' => function($posts){
            $posts->where('active', 1);
        }]);
    }]);