我使用Symfony2为我的应用程序和使用Doctrine .orm。关系映射的Yml文件
我有三个实体如下:
-
包含id(整数主键),user_name(varchar)的用户实体
-
包含id(整型主键)、name(varchar)、user_id(标识创建组合的用户的FK)的投资组合实体
-
包含id(整数主键),progress_text(varchar)的进度实体
我的问题是我不知道如何设置三个实体之间的多对多关系,即投资组合,用户和进度。
我想以这样一种方式设置一个关系,即作为这个关系的结果创建的新表包含以下字段:
- user_id
- portfolio_id
- progress_id
- created_at
- updated_at
在上面的列表中,created_at、updated_at和type是我用于某些业务规则目的的字段。
请有人帮我写他们的。orm。yml文件。我知道Symfony2中有生成实体及其相应的。orm的内置命令。yml文件。但是我不知道如何在相应的文件中编写上述所需的关系
您需要为这个关系创建单独的关联表。您的ORM文件将像这样:
Application'Bundle'Entity'nameofAssociationTable:
type: entity
table: nameofAssociationTable
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
manyToOne:
user:
targetEntity: Application'Bundle'Entity'User
cascade: { }
mappedBy: null
inversedBy: null
joinColumns:
user_id:
referencedColumnName: id
orphanRemoval: false
portfolio:
targetEntity: Application'PLibBundle'Entity'Portfolio
cascade:
- persist
- remove
mappedBy: null
inversedBy: null
joinColumns:
portfolio_id:
referencedColumnName: id
orphanRemoval: false
lifecycleCallbacks: { }
同样,您需要将关系添加到manytoOne关系中。谢谢。