在Doctrine2中可以使用第三个键来管理多对多关系,以便能够添加多个识别关系吗?
我有一个“用户”表和另一个“计划”表,我做了正常的多对多关系,生成带有两个主键(user_id和plan_id)的user_plan表但我需要在我的应用程序中能够将同一计划添加到用户不止一次。例如:user_plan(generated_id,user_id,plan_id)
我当前的用户yml定义:
Entity\FosUser:
type: entity
table: fos_user
fields:
id:
id: true
type: integer
unsigned: false
nullable: false
generator:
strategy: IDENTITY
manyToMany:
plans:
targetEntity: Plan
inversedBy: users
joinTable:
name: user_plan
joinColumns:
plan_id:
referencedColumnName: id
inverseJoinColumns:
user_id:
referencedColumnName: id
lifecycleCallbacks:
prePersist: [ setUserValue ]
preUpdate: []
我目前的计划yml定义:
Entity\Plan:
type: entity
table: plan
fields:
id:
id: true
type: integer
unsigned: false
nullable: false
generator:
strategy: IDENTITY
planName:
type: string
length: 50
fixed: false
nullable: false
column: plan_name
manyToMany:
users:
targetEntity: FosUser
mappedBy: plans
LifecycleCallbacks:
prePersist: [ setCreatedAtValue ]
preUpdate: [ setUpdatedAtValue ]
有人知道是否可以用symfony2做到这一点?
答案 0 :(得分:0)
我不知道第三把钥匙,但我看到另一种解决方案。您可以添加另一个型号PlantBed。用户has_many PlantBeds(PlantBed has_one User)。 PlantBed拥有一个Plant(Plant has_many PlantBeds)和quantityOfPlantsInBed。