我找不到這種寫作方式,我可以理解它的文檔,所以我要問你的幫助。這個問題關係到Unique entity - Symfony2唯一約束 - Symfony2中和Doctrine2
我有一個名爲類別帶有三個字段的表 - ID,fos_user_id和名。 其他表稱爲fos_user,具有領域ID,用戶名等。
我想類別是用戶的唯一。一個用戶不能有兩個名字爲「Food」的類,但所有用戶都可以擁有一個名爲「Food」的類別。
在其他的問題,我勸嘗試這樣的事:
* @ORM\Table(name="categories",
* uniqueConstraints={@ORM\UniqueConstraint(name="name_user_id__idx",
* columns={"name", "user_id"})})
,我想這:
/**
* @ORM\Entity
*
* @ORM\Table(name="category",
* uniqueConstraints={@ORM\UniqueConstraint(name="name_user_idx",
columns={"name", "fos_user_id"})}))
* @ORM\Entity(repositoryClass="Acme\BudgetTrackerBundle\Entity\CategoryRepository")
* @UniqueEntity(fields={"name", "fos_user_id"}, message="There already is such a category.")
*/
,但我得到這個錯誤:
The field 'fos_user_id' is not mapped by Doctrine, so it cannot be validated for uniqueness.
我不能完全理解錯誤。我不明白帶有限制的部分。這是正確的語法和正確的寫作?
非常感謝您提前!
PS:對不起,打開一個新的問題,如果我不應該,但我增加了很多新的東西,決定了新qusetion比編輯舊,並要求在評論更好。
我改變了你說什麼,但它仍然不允許兩個用戶具有相同名稱的類別。 – Faery 2013-04-26 06:02:35
從@ORM \ Table定義中移除「uniqueConstraints」。 – Zeljko 2013-04-26 13:13:18
我刪除了它,現在我擁有的是@UniqueEntity(fields = {「name」,「user」})',但現在它不會讓不同的用戶擁有同名的類別。 – Faery 2013-05-15 09:30:56