繁体   English   中英

对同一数据库中的2个或多个表使用一个实体symfony类

[英]Use one entity symfony class for 2 or many tables in the same database

我正在开发一个Web应用程序,用户可以在其中切换要记录数据的表。 我的意思是,在同一个表中可能有一个用于测试模式的表和另一个用于prod模式的表。 例如,我在两种模式下都有一个tab_article,但它们中的列是相同的,所以我想只为它们使用一个实体类,但它将取决于用户的选择,说数据将在表中输入prod或者测试。

我还计划允许管理员创建其他模式,因此我将为他创建的任何模式动态生成所有表。

我寻找任何建议。

谢谢你的回答。

解决此问题的更简单方法是处理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);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM