Я знаю, что этот вопрос, вероятно, немного абсурден, но я застрял с ним в течение двух дней, и я прихожу сюда в поисках альтернативы тому, что я в настоящее время разработал.
Я ставлю васв контексте у нас есть три таблицы:
- Users
- Sedes
- UsersSedes (pivot) [user_id, sedes_id]
В настоящее времяМне нужно показать в списке (Datatable) всех пользователей, которые содержат в своих sedes одно из мест, настроенных в активном пользователе (администратор).
Пример: Admin, зарегистрированные и активные sedes - это A и B (Есть также C и D) Список: Пользователь 1 с sede A Пользователь 2 с sede B Пользователь 3 с sede B Пользователь 4 с sede B
Я не знаю, объясню ли я ...
Проблема в том, что в моей таблице около 2000 записей, так как я запрограммировал, что для управления данными требуется много времени, потому что он выполняет 2000 запросов.
EDIT На самом деле я использую foreach, например, для создания массива с данными.:
$ pacientes = Usuario :: with (['sedes']) -> where ('role_id', 3) -> get ();
$sedesHabilitadas = auth()->user()->sedes->pluck('id')->toArray();
$habilitados = array();
foreach($pacientes as $paciente)
{
if( in_array($paciente->sedes->pluck('id')->first(), $sedesHabilitadas))
{
array_push($habilitados, $paciente);
}
}