Laravel 5.3 запрос для получения результатов из 4 таблиц, которые имеют соединения через внешний ключ
я использую Laravel 5.3. Я 4 стола.
По умолчанию Users таблица. Departments, Position, Employees таблицы.
Users таблицы ID | Email | Password
Departments таблицы ID | Department | User_Id здесь User_Id внешний ключ приходит от Users таблицы ID
Positions таблицы ID | Position | Department_Id здесь Department_Id внешний ключ приходит от Departments таблицы ID
Employees таблицы ID | Employee | Position_Id здесь Position_Id внешний ключ приходит от Positions стол ID
пользователь может иметь несколько Departments. Departments может иметь несколько Positions, Positions может иметь несколько Employees. Итак, если пользователь отличается, как я могу получить все данные из всех 4 таблиц, которые создал этот пользователь?
1 ответов
можно использовать вложенную жадную загрузку:
$departments = Department::where('user_id', $id)
->with('positions', 'positions.employees')
->get();
другой способ-построить простые запросы:
$departments = Department::where('user_id', $id)->get();
$positions = Position::whereIn('department_id', $departments->pluck('id'));
$employees = Employee::whereIn('position_id', $positions->pluck('id'));