php - Symfony2 将实体映射到不同的表

标签 php database symfony doctrine mapping

我的实体 foo 包含属性 idbarbaz。我可以根据未映射的属性 baz 使用同一实体填充两个不同的表(如 foo1foo2)吗?实体的代码如下所示:

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 继承:

Doctrine inheritance

它是这样工作的:

基础客户端

  • SubClient1 扩展自 BaseClient
  • SubClient2 扩展自 BaseClient

像这样,您甚至可以添加额外的字段,比如仅特定于该实体的 SubClient1 或 SubClient2。

关于php - Symfony2 将实体映射到不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16037626/

相关文章:

java - 从字符串数组更新 mysql 数据库

database - Sybase ASE 15.7 - 如何将两个数据库中的对象合并到一个数据库中?

mysql - 将 Redis 数据同步到 MySQL 的最佳策略是什么?

php - Doctrine2 oneToOne 复合主键不可为空

php - onFlush 中的计划实体是不同的实例

events - 访问内核监听器中的路由选项

php - 在 php 中将字符串转换为 domelement

php - 如何使用php自动调整上传图片的大小

php - PHP 5.3.1 上的 Paypal 错误消息

javascript - CanvasJS:xValueFormatString 根本不执行任何操作