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

标签 php mysql symfony

我正在开发一个网络应用程序,用户可以在其中切换他想要记录数据的表格。我的意思是,同一张表中可能有一个用于测试模式的表和另一个用于生产模式的表。例如,我在两种模式下都有一个 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/

相关文章:

javascript - 使用 youtube data api 获取带有分页的 iframe 中的第一个视频?

php - 使用计数器将多行插入表中

php - cURL 未获取预期的 POST 响应 - 错误 405

mysql - Ruby Rails,在索引erb页面中获取db中列的重复计数

php - 教义错误 : "Failed opening required '/tmp/__CG__Source. php'"

php - Symfony 2.1 - 未捕获的 PHP 异常 Twig_Error_Runtime

php - Laravel 5 - Laracast Easy Auth - 保存文章

mysql - 帖子的多重评级系统(喜欢,爱,星)

php - INNER JOIN 第三个表

php - Symfony2 - SonataAdmin - 空 admin_list block