В командном скрипте 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