Доктрина: новая сущность была найдена через отношения с выбранными элементами - PullRequest
0 голосов
/ 08 июля 2019

В командном скрипте Symfony я нахожу сущности, подобные этой:

$this->em->getRepository('AppBundle:House')->findBy(...);

Элемент Foreach, я вызываю метод службы с моим элементом в качестве аргумента.В моем Сервисе у меня возникает ошибка, когда я пытаюсь создать элемент, связанный с объектом "house"

это не работает:

$glass = $this->em->getRepository('AppBundle:Glass')->findOneBy(['house' => $house->getId(), 'name' => $name]);
if (! $glass instanceof Glass) {
    $newGlass= new Glass($house, $name);
    $this->em->persist($newGlass);
    $this->em->flush();
}

это работает, но я нехочу снова найти мой существующий дом, который я уже основал в своем командном сценарии:

$existingHouse = $this->em->getRepository('House')->find($house->getId());
$glass = $this->em->getRepository('AppBundle:Glass')->findOneBy(['house' => $house->getId(), 'name' => $name]);
if (! $glass instanceof Glass) {
    $newGlass= new Glass($existingHouse, $name);
    $this->em->persist($newGlass);
    $this->em->flush();
}

Можете ли вы помочь мне понять, что не так?

Конструктор стекла

public function __construct(House $house, string $name)
{
    $this->name= $name;
    $house->addGlass($this);
    $this->house= $house;
}

Домашний файл:

oneToMany:
    glasses:
        targetEntity: Glass
        mappedBy: house
        cascade: ["persist"]

Стеклянный файл:

manyToOne:
    house:
        targetEntity: House
        cascade: {  }
        fetch: LAZY
        mappedBy: null
        inversedBy: glasses
        joinColumns:
            house_id:
                referencedColumnName: id
        orphanRemoval: false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...