2011-07-13 4 views
0

最近の助けてくれてありがとうございます。これは本当にうまく動作しますが、今はこのコードにいくつか問題があります。Symfony - いくつかの外部キーでDB内のレコードを更新しようとしました

  //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は、親行を削除または更新できません:。外部キー制約が失敗する(grabmarkcourse、CONSTRAINT course_course_type_id_course_type_id FOREIGN KEY(私はこのレコードを交換しようとすると、次のメッセージが表示されますcourse_type_id)参考文献course_typeid)) "

誰でも私を助けてくれる? 申し訳ありませんが、私は今symfonyで開始しており、MVC Frameworkとの最初の連絡です。 ありがとう、 Alexandre Sousa

答えて

2

Alexandre、これはsymfonyよりもデータベースの問題です。

このレコードを更新しようとすると、CourseTypeIdとCollegeIdを新しい値で変更しています。これらは外部キーです。これらのフィールドの値(CourseTypeIdとCollegeId)は、これらのキーが参照されているテーブルにありますか?例えば

あなたは10に15とCollegeIdにCourseTypeIdを設定しているとしましょう、そして、これらの外部キーが参照されているところから、データベースのテーブルに存在も値15と10がありますか?そうでない場合、発生している整合性制約エラーが表示されます。 UPDATINGでINSERTINGではないので、2つの外部キー列が参照されているテーブルに値15と10が存在していなければなりません。

これは役に立ちますか?

+0

はい、役立ちますが、今は正常に動作します。 ありがとうございます。 – Avsousa

+0

素晴らしい、ありがとう –

関連する問題