Tengo tres tablas: users
, organizations
, organization_user
. organization_user
es una tabla dinámica para la relación de muchos a muchos entre users
y organizations
. Las relaciones de muchos a muchos se han configurado correctamente en los modelos correspondientes.
Necesito obtener todos los usuarios que no están asociados con una organización determinada. ¿Cómo se debe hacer esto usando elocuente. A continuación se muestra lo que he intentado, pero no arroja resultados:
public function associate_user($organization_id){ $data = [ 'organization' => \App\Organization::find($organization_id), 'users' => \App\User::whereDoesntHave('organizations', function($query) use ($organization_id){ $query->where('organization_id', $organization_id); }) ]; return view('admin.associateUser', $data); }
En realidad, nunca está ejecutando la consulta.
Debe llamar a get()
al final del generador de consultas.
public function associate_user($organization_id) { $data = [ 'organization' => \App\Organization::find($organization_id), 'users' => \App\User::whereDoesntHave('organizations', function($query) use ($organization_id){ $query->where('organization_id', $organization_id); })->get(); // Add the call to get() ]; return view('admin.associateUser', data); }