Итак, давайте представим, что у нас есть 2 модели «А» и «В».Модель «А» имеет два отношения к модели «В» различными иностранными ключами.Например, в базе данных у нас есть 2 записи со структурой
id | first_id | second_id
1 1 2
2 2 1
Так что проблема в том, когда я делаю это:
A::with(['first', 'second'])->get()
Вызывает два одинаковых SQL-запроса для отношения извлечения
select * from `B` where `B`.`id` in (1, 2) and `B`.`deleted_at` is null
select * from `B` where `B`.`id` in (1, 2) and `B`.`deleted_at` is null
Так как этого избежать?
PS Класс модели
class A extends Model {
public function first() {
return $this->belongsTo(B::class, 'first_id');
}
public function second() {
return $this->belongsTo(B::class, 'second_id');
}
}
b модель пуста