У меня есть две таблицы, school_users
и users
. Мне нужно создать запрос с использованием Eloquent , который получает всех пользователей, где user_id
равно school_id
. поэтому в результате должно быть несколько пользователей, поэтому мне также нужно сгруппировать результат по school_id
спасибо в davance
Отношения: Модель пользователя:
public function school()
{
return $this->hasMany(SchoolUser::class);
}
Модель SchoolUser:
public function user()
{
return $this->hasMany(User::class);
}
School_users
таблица:
+----+---------+------------+-------------+
| id | user_id | school_id | created_at |
+----+---------+------------+-------------+
| 1 | 79 | 79 | <SOME TIME> |
| 2 | 85 | 79 | <SOME TIME> |
| 3 | 86 | 85 | <SOME TIME> |
| 4 | 87 | 85 | <SOME TIME> |
+----+---------+------------+-------------+
users
таблица:
+----+
| id |
+----+-
| 79 |
| 85 |
| 86 |
| 87 |
+----+-
Модель пользователя:
public function getUsers()
{
return $this
->leftJoin('school_users', $this->table . '.id', '=', 'school_users.school_id')
->select(
$this->table . '.*',
'school_users.school_id as school_id'
)
->whereIn('users.id', '=', 'school_users.school_id')
->orderBy('id', 'desc')
->get();
}