SQLSTATE [23000] при добавлении 3 сущностей в Doctrine 2 и Symfony 2 - PullRequest
1 голос
/ 19 ноября 2011

Я создал 3 доктрины:

Все работает хорошо, пока я не попытаюсь добавить ЛЮБОЙ «ответ», затем я получу исключение PDOException:

[PDOException]  
SQLSTATE[23000]:
Integrity constraint violation: 
1452 Cannot add or update a child row: 
a foreign key constraint fails 
(`ankieter`.`answer`, CONSTRAINT `FK_DD714F131E27F6BF` FOREIGN KEY (`question_id`) REFERENCES `Question` (`id`)) 

Код прибора для тестирования

Ошибка, которую я получаю

EDIT: Когда я экспортирую свою структуру БД с помощью PhpMyAdmin, удаляю информацию о внешних ключах и импортирую структуру обратно, все работает хорошо (я могу добавить данные в таблицу «Ответ»). Что может быть не так с внешними ключами?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2011

Попробуйте добавить cascade={"persist"} к определению ваших ответов в организации вопросов

@ORM\OneToMany(targetEntity="Answer", mappedBy="question", cascade={"persist"})

, а также к определению ваших вопросов в организации ответов

@ORM\ManyToOne(targetEntity="Question", inversedBy="answers", cascade={"persist"})

Теперь доктрина должна быть в состояниисохранить все записи в правильном порядке.

0 голосов
/ 19 ноября 2011

Я думаю, вам следует попробовать flush() создать каждый вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...