比方說,我有一個Thing實體,一個Group實體和一個Year實體。每個組都屬於一年。但是,事情與年代沒有關係。事物和羣體之間存在着多對多的關係(一個羣體由幾件事物組成,一件事物可以屬於幾個羣體)。Symfony2多對多的唯一約束
My\MainBundle\Entity\Group:
type: entity
manyToOne:
year:
targetEntity: Year
manyToMany:
things:
targetEntity: Thing
joinTable:
name: groups_things
joinColumns:
group_id:
referencedColumnName: id
inverseJoinColumns:
thing_id:
referencedColumnName: id
我想要做的就是確保,給定年份,一組是獨一無二的。也就是說,如果在2014年,我有一個擁有第1,2和3件物品的集團,我不想阻止該用戶創建同年和同一件物品的另一個集團。然而,再創造一個同樣東西的團隊再好一年。
我不知道要在我的validation.yml
文件中放置什麼,以防止用戶在同一年創建具有相同事物的多個組。
我已經試過:
My\MainBundle\Entity\Group:
constraints:
- Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity:
fields: [year, things]
message: This group already exists.
,但它不工作。我得到一個異常:
ContextErrorException:注意:未定義指數:joinColumns在/var/www/vhosts/myhost.local/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php線1665
根據你提供的信息,我不認爲這是可能的與約束nts獨自。在插入新組之前,您需要添加自己的邏輯來驗證這一點。 – Chausser