DiscriminatorMap批注中的环境变量或函数

问题描述 投票:0回答:1

如何获得基于当前环境设置的鉴别符图?

我有一个使用带有区分符列的单表继承的实体:

@ORM\DiscriminatorMap({1="Product", 2="User"})

鉴别符值(1, 2)在我的生产和开发环境中有所不同,因此需要动态设置这些值。不幸的是,Doctrine annotation documentation中似乎没有这个选项。

直接在注释中使用环境似乎无效。例如,我尝试过:

@ORM\DiscriminatorMap('%discrimination_array%')

然后在discrimination_array中定义doctrine.yaml

discrimination_array: '{%env(PRODUCT)%="Product", %env(USER)%="User"}'

以及.env中的相应环境变量:

PRODUCT=1
USER=2

但是,教义会抛出类似的错误

将varchar值'%env(PRODUCT)%'转换为数据类型smallint时转换失败。>>

是否可以根据当前环境设置类别区分图?

如何获得基于当前环境设置的鉴别符图?我有一个使用带有区分符列的单表继承的实体:@ORM \ DiscriminatorMap({1 =“ Product”,2 =“ ...

php symfony doctrine-orm doctrine
1个回答
1
投票

这可以通过扩展特定实体的数据映射来完成。当注释被解析时,Doctrine fires an event

© www.soinside.com 2019 - 2024. All rights reserved.