#php #symfony1 #doctrine #relational-database #symfony-1.4
#php #symfony1 #доктрина #реляционная база данных #symfony-1.4
Вопрос:
я изучаю Symfony и Doctrine с помощью Jobeet. Я хотел бы добавить отношение в JobeetJob. это оригинал:http://www.symfony-project.org/jobeet/1_4/Doctrine/en/03
Мне действительно нравится это:
JobeetCategory:
actAs: { Timestampable: ~ }
columns:
name: { type: string(255), notnull: true, unique: true }
JobeetCategorya:
actAs: { Timestampable: ~ }
columns:
name: { type: string(255), notnull: true, unique: true }
JobeetJob:
actAs: { Timestampable: ~ }
columns:
category_id: { type: integer, notnull: true }
categorya_id: { type: integer, notnull: true }
type: { type: string(255) }
(...)
expires_at: { type: timestamp, notnull: true }
relations:
JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id, foreignAlias: JobeetJobs }
JobeetCategorya: { onDelete: CASCADE, local: categorya_id, foreign: id, foreignAlias: JobeetJobsa }
когда я делаю:
доктрина php symfony:build —all —and-load
у меня ошибка
SQLSTATE [23000]: нарушение ограничения целостности: 1452 Не удается добавить или обновить дочернюю строку: сбой ограничения внешнего ключа (
jobeet
.jobeet_job
, ССЫЛКИ Наjobeet_job_categorya_id_jobeet_categorya_id
ВНЕШНИЙ КЛЮЧ (categorya_id
) ОГРАНИЧЕНИЯjobeet_categorya
(id
) При КАСКАДНОМ УДАЛЕНИИ)
почему?
Комментарии:
1. Патрик, тебе следует сформулировать свой заголовок в виде вопроса, а поскольку Jobeet — это symfony / doctrine, добавь и это туда. Это помогает другим определить вопрос, на который они, вероятно, смогут ответить. Просто предложение:
How to create a relation in Doctrine?
2. Что вы делаете, когда получаете ошибку?
3. я делаю: php symfony doctrine:build —all —and-load
4. Добавьте это в свой вопрос, например: Когда я это делаю
doctrine:build --all --and-load
, я получаю эту ошибку: (ваше сообщение об ошибке уже есть в вопросе, поэтому поместите его между ними)5. хорошо 🙂 может знаете решение проблемы?
Ответ №1:
Я думаю, что проблема вызвана --and-load
частью этой команды. Эта ошибка часто возникает, когда вы загружаете элементы управления в таблицы в порядке, который нарушил бы их отношения с внешним ключом (т. Е. помещаете дочерние данные перед родительскими данными).
Если это действительно ваша проблема, вы можете найти здесь несколько тем о том, как обойти эту проблему … в основном, просто сначала собирая ( build --all
), а затем загружая приспособления отдельными пакетами, чтобы они учитывали отношения внешнего ключа.