Symfony - попробуйте обновить запись в БД с некоторыми внешними ключами - PullRequest
0 голосов
/ 13 июля 2011

Большое спасибо за недавнюю помощь.Он работает очень хорошо, но теперь у меня возникли некоторые проблемы с этим кодом.

          //Save course record to DB
          $record_course = new course();
          $record_course->setName($courseInfo['name']);
          $record_course->setUrl($courseInfo['url']);
          $record_course->setAcronym($courseInfo['acronym']);
          $record_course->setCourseTypeId($record_courseType->getId());
          $record_course->setStartDate($courseInfo['startDate']);
          $record_course->setCollegeId($record_college->getId());
          $record_course->setPlanUrl($courseInfo['planUrl']);
          $record_course->replace();

Как видите, я пытаюсь обновить запись, но теперь у нас есть некоторые внешние ключи.В данном случае это CourseTypeId и CollegeId.Когда я пытаюсь заменить эту запись, я получаю следующее сообщение:

"SQLSTATE [23000]: Нарушение ограничения целостности: 1451 Невозможно удалить или обновить родительскую строку: сбой ограничения внешнего ключа (grabmark. course, ОГРАНИЧЕНИЕ course_course_type_id_course_type_id ИНОСТРАННЫЙ КЛЮЧ (course_type_id) ССЫЛКИ course_type (id)) "

Кто-нибудь может мне помочь, пожалуйста?Извините, но я сейчас начинаю в Symfony, и это мой первый контакт с MVC Framework.Большое спасибо, Александр Соуза

1 Ответ

2 голосов
/ 13 июля 2011

Александр, это больше проблема с базой данных, чем с symfony.

Когда вы пытаетесь обновить эту запись, вы меняете CourseTypeId и CollegeId новыми значениями, которые, по вашему мнению, являются внешними ключами.Присутствуют ли значения в этих полях (CourseTypeId и CollegeId) в таблице, на которую ссылаются эти ключи?

Например:

Допустим, вы устанавливаете CourseTypeId в 15 и CollegeId в 10Тогда значения 15 и 10 также присутствуют в таблице базы данных, откуда эти внешние ключи ссылаются?Если нет, то появляется ошибка ограничения целостности, с которой вы столкнулись.Поскольку вы ОБНОВЛЯЕТЕ, а не вставляете, значения 15 и 10 должны присутствовать в таблице, откуда ссылаются два столбца внешнего ключа.

Помогает ли это?

...