Laravel хочет загрузить ненужный запрос - PullRequest
0 голосов
/ 29 ноября 2018

Итак, давайте представим, что у нас есть 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 модель пуста

...