2017-04-14 5 views
0

レコードを削除したい場合(私の場合は言語)システムの他のテーブルで参照されているレコード(言語)の削除を防止したい。Doctrineがレコードの削除を継続できない

私の場合の言語(レコード)が他のテーブルで参照されていても削除されるという問題があります。私はMySQLのworkbenchで私の関係を調べました。それはDELETEとON UPDATEのRESTRICTアクションに何らかの理由でDoctrine/Symfonyが同じフィールドを削除できると言います。

誰かがどこに問題があるのか​​分かりますか?ここで

は、エンティティのセットアップです:...

/** 
    * Many drivers have Many langauges (OWNING SIDE) 
    * 
    * @ORM\ManyToMany(targetEntity="Language", inversedBy="language", cascade={"persist"}) 
    * @ORM\JoinTable(name="bus_drivers_languages", 
    *  joinColumns={@ORM\JoinColumn(name="bus_driver_id", referencedColumnName="id")}, 
    *  inverseJoinColumns={@ORM\JoinColumn(name="languages_id", referencedColumnName="id")} 
    *) 
    **/ 

    private $languages; 



/** 
    * @var ArrayCollection 
    * 
    * @ORM\ManyToMany(targetEntity="BusDriver", mappedBy="languages", cascade={"persist"}) 
    */ 
    protected $language; 

答えて

0

あなたはデータベースレベル(あなたがあなたのアプリケーション全体で一貫性を維持する方法)でそれを強制することができ

ALTER TABLE `table_name` 
ADD CONSTRAINT `constraint_name` 
FOREIGN KEY (`column_list`) 
REFERENCES `referenced_table` (`referenced_column_list`); 
関連する問題