Я новичок ie до Laravel. У меня есть проблема для моего проекта. Точно так же у меня есть 2 структурные таблицы следующим образом:
cases (id, name, customer_id, abc, xyz)
case_employees (id, case_id, employee_id, customer_id)
employees (id, name)
Связь между таблицами:
$case->hasMany(CaseEmployee::class, 'case_id');
$case_employee->belongsTo(Employee::class, 'employee_id');
Мой запрос выглядит следующим образом:
Case::with(['case_employees' => function($query) {
$query->with('employee:id,name')
->where(['cases.customer_id', '=', 'case_employees.customer_id'])
->first();
}])->get();
Моя проблема что-то вроде этого: -> где (['case.customer_id', '=', 'case_employees.customer_id']) . То есть получить список дел с case_employees, с сотрудником (дополнительное условие: case.customer_id = case_employees.customer_id).
Я хочу получить:
$cases = [
id: 123,
name: 'abc',
customer_id: 234,
case_employees: [
id: 1,
case_id: 123,
employee_id: 2,
customer_id: 234,
employee: [
id: 2,
name: 'def',
]
],
case_employees: [
id: 2,
case_id: 123,
employee_id: 3,
customer_id: 234,
employee: [
id: 3,
name: 'xyz',
]
],
]
Может кто-нибудь мне помочь с правильным запросом? Вы также можете использовать DB :: query ().
В дополнение к передаче внешних ключей, я хочу проверить больше условий между двумя таблицами. Например, customer_id для случаев и customer_id для case_employees.