Php 如何从环境变量加载条令表定义

Php 如何从环境变量加载条令表定义,php,laravel,doctrine-orm,Php,Laravel,Doctrine Orm,我有一个项目,它使用了教义。我想在多个客户的服务器上运行相同的代码。唯一的问题是,有些表的名称不同。不幸的是,不仅仅是前缀不同。例如,user表是一个数据库中的用户,而user表是另一个数据库中的用户,但我想使用的列是相同的 是否可以从环境变量中读取实体表名称?我不知道如何解决这个问题,因为它必须在注释中定义,如下所示: /** * @ORM\Entity * @ORM\Table(name="tablename") */ 如果我在每个客户代码的注释中手动更改表名,那么它就可以工作了。但

我有一个项目,它使用了教义。我想在多个客户的服务器上运行相同的代码。唯一的问题是,有些表的名称不同。不幸的是,不仅仅是前缀不同。例如,user表是一个数据库中的用户,而user表是另一个数据库中的用户,但我想使用的列是相同的

是否可以从环境变量中读取实体表名称?我不知道如何解决这个问题,因为它必须在注释中定义,如下所示:

/**
 * @ORM\Entity
 * @ORM\Table(name="tablename")
 */
如果我在每个客户代码的注释中手动更改表名,那么它就可以工作了。但是我想避免这种情况,因为EntityManager实现了ObjectManager接口,所以您的EntityManager应该有一个方法。此方法将返回一个实例,该实例允许您访问类的配置,包括具有getTableName的基础表名:

$entityManager->getClassMetadata('App\Models\YourEntity')->getTableName();