我的实体 foo
包含属性 id
、bar
和 baz
。我可以根据未映射的属性 baz
使用同一实体填充两个不同的表(如 foo1
和 foo2
)吗?实体的代码如下所示:
class foo {
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
*/
private $id;
/**
* @ORM\Column(name="bar", type="string")
*/
private $bar;
/**
* Property not mapped in the database
*/
private $baz;
}
我想如果 baz
的值为 1,将实体保存在表 foo1
中,如果 baz
的值为2、保存在表foo2
中。我在哪里可以选择要保存在哪个表中?
最佳答案
使用 Doctrine 继承:
它是这样工作的:
基础客户端
- SubClient1 扩展自 BaseClient
- SubClient2 扩展自 BaseClient
像这样,您甚至可以添加额外的字段,比如仅特定于该实体的 SubClient1 或 SubClient2。
关于php - Symfony2 将实体映射到不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16037626/