我找不到这种写作方式,我可以理解它的文档,所以我要问你的帮助。这个问题关系到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