我正在开发一个网络应用程序,用户可以在其中切换他想要记录数据的表格。我的意思是,同一张表中可能有一个用于测试模式的表和另一个用于生产模式的表。例如,我在两种模式下都有一个 tab_article,但它们中的列是相同的,所以我只想为它们使用一个实体类,但这将取决于用户的选择,即数据将进入产品表或进入测试。
我还计划允许管理员创建其他模式,因此我将为他创建的任何模式动态生成所有表。
我寻找任何建议。
感谢您的回答。
最佳答案
解决这个问题更简单的方法是处理 loadClassMetadata
Doctrine 事件。
简单的监听器示例:
class TableEnvRenameListener
{
private $env;
public function __construct($env)
{
$this->env = $env;
}
public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
{
$classMetadata = $eventArgs->getClassMetadata();
$table = $classMetadata->table;
$table['name'] = str_replace('_env', $this->env, $table['name']);
$classMetadata->setPrimaryTable($table);
}
}
关于php - 对同一数据库中的 2 个或多个表使用一个实体 symfony 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071512/