Fae*_*ery 1 doctrine unique-constraint symfony
我无法找到以我能理解的方式编写的文档,所以我向你寻求帮助.此问题与Unique entity - Symfony2有关
我有一个名为category的表,有三个字段 - id,fos_user_id和name.另一个表称为fos_user,并具有字段ID,用户名等.
我希望类别对用户来说是唯一的.一个用户不能拥有名为"Food"的两个ctegories,但所有用户都可以拥有名为"Food"的类别.
在另一个问题中,我被建议尝试这样的事情:
* @ORM\Table(name="categories",
* uniqueConstraints={@ORM\UniqueConstraint(name="name_user_id__idx",
* columns={"name", "user_id"})})
Run Code Online (Sandbox Code Playgroud)
我试过这个:
/**
* @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.")
*/
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
字段'fos_user_id'未由Doctrine映射,因此无法验证其唯一性.
我不太明白这个错误.我不明白有限制的部分.这是正确的语法和正确的写法吗?
非常感谢你提前!
PS:很抱歉打开一个新问题,如果我不应该,但我添加了很多新东西,并决定新的问题比编辑旧问题更好,并在评论中提问.
对于类别,用户等关系......你不应该对列使用唯一约束,而应该使用关系.例如:
代替
@UniqueEntity(fields={"name", "fos_user_id"})
Run Code Online (Sandbox Code Playgroud)
尝试
@UniqueEntity(fields={"name", "user"})
Run Code Online (Sandbox Code Playgroud)
其中"user"是与User实体关联的映射字段的名称.
归档时间: |
|
查看次数: |
7463 次 |
最近记录: |