Я хочу сохранить созданную мной форму, но у меня ошибка.
У меня есть 3 объекта:
class T {
/**
* @ORM\OneToOne(targetEntity="MyNameSpace\ProfileBundle\Entity\Person", cascade={"persist"})
*/
private $information;
}
class Person {
/**
* @ORM\OneToOne(targetEntity="MyNameSpace\MediaBundle\Entity\Document", cascade={"persist"}))
*/
private $photo_profile;
}
class Document
{
private $file;
}
Когда я сохраняю свой класс "T" с этим кодом:
public function createAction()
{
$entity = new T();
$request = $this->getRequest();
$form = $this->createForm(new TType(), $entity);
$form->bindRequest($request);
if ($form->isValid())
{
$em = $this->getDoctrine()->getEntityManager();
$em->persist($entity);
$em->flush();
}
}
У меня есть эта ошибка:
SQLSTATE [23000]: Нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: сбой ограничения внешнего ключа (namespace
. person
, CONSTRAINT FK_3370D440809EFCB0
FOREIGN KEY (photo_profile_id
) ССЫЛКИ Document
(id
))
Любая помощь будет крутой
Спасибо за все
Вот код, который я имею:
/**
* Creates a new Tutor entity.
*/
public function createAction()
{
$entity = new T();
$person = new Person();
$document = new Document();
$person->setPhoto($document);
$entity->setInformation($person);
$request = $this->getRequest();
$form = $this->createForm(new TType(), $entity);
$form->bindRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($entity->getInformation()->getPhoto());
$em->persist($entity->getInformation());
$em->flush();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('Index'));
}
и у меня есть эта ошибка:
SQLSTATE [23000]: нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется (db
. T
, ОГРАНИЧЕНИЕ FK_58C6694C2EF03101
ИНОСТРАННЫЙ КЛЮЧ (information_id
) ССЫЛКИ Person
(id
))
Любая помощь, пожалуйста, будет круто
Спасибо