Laravel elequent pivot table 使用 where

Laravel elequent pivot table using where

如何使用 Laravel 来做这样的事情:

表格:

projects:
id,name, active

pivot table: project_users
id, project_id, user_id

如果我这样做,我会得到很好的结果,包括项目的所有用户

Project::with('users')->where('active', '=', 1)->get();

但是我如何过滤用户和活跃用户?像 ?

Project::with('users')->where('active', '=', 1)->where('users',=,3)->get();

或 ??

Project::with('users')->where('active', '=', 1)->where('users.user_id',=,3)->get();

如果你想限制 table 中的行你是预加载那么你可以添加约束到预加载,你可以在 $query 上执行你通常的 QueryBuilder 操作.因此,在您的示例中,我们可以执行以下操作:

Project::with(['users' => function($query)
{
    $query->where('user_id', '=', 3);

}])->where('active', '=', 1)->get();

这是假设 active 在预加载之前可供您的初始 table 访问。