Symfony 4 отношения OneToOne не извлекаются из базы данных - PullRequest
0 голосов
/ 23 марта 2020

Эта проблема такая странная!

Пример структуры сущностей, относящихся друг к другу:

Свойство -> InstructionToSell (OneToOne) -> acceptOffer (OneToOne)

Если Я делаю что-то вроде:

$property = $repo->findOneBy([‘id’=> 1]);

Это работает, все отношения возвращаются нормально.

Но теперь, если я создаю пользовательский метод в репозитории свойств для поиска по почтовому индексу с помощью запроса LIKE, Принятые отношения предложения равны нулю

Меня смущает, почему это происходит? Это та же сущность, те же отношения, я просто загружаю ее через аналог, а не напрямую по идентификатору.

Даже если я использую fetch, все работает нормально.

Надеюсь, я объяснил это достаточно хорошо, трудно объяснить, что я вижу.

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Это потому, что вы, возможно, создали пользовательский запрос, и когда вы создаете их, вам нужно определить свои объединения и выбрать их.

Например;


    $queryBuilder
        ->addSelect('p', 'i', 'o')
        ->join('p.instructionToSell', 'i')
        ->join('i.acceptedOffer', 'o')
        ->setParameter('name', $name)
        ->andWhere(
             $queryBuilder->expr()->eq('p.name', ':name')
        );

0 голосов
/ 24 марта 2020

Похоже, что здесь "ленивая загрузка".

Вы явно написали запрос на присоединение в своем пользовательском? (потому что, может быть, вам следует)

...