预期为 int,但得到了 redis 端口的字符串
Expected int, but got string for redis port
我有 docker 的配置:
# docker-compose.yml
environment:
REDIS_SERVER: redis
REDIS_PORT: 6379
然后在 symfony 中我用它来配置参数:
# parameters.yml
redis_port: %env(REDIS_PORT)%
And then I use the parameter to configure Picmore's cache:
```yaml
# pimcore.yml
cache:
pools:
redis:
enabled: true
connection:
port: '%redis_port%'
但是我得到了错误
Invalid type for path "pimcore.cache.pools.redis.connection.port". Expected int, but got string.
错误很明显,但我无法解决,我尝试了不同的选择:
redis_port: '%env(REDIS_PORT)%'
redis_port: '%env(int:REDIS_PORT)%'
但是我得到了同样的错误。我该如何解决这个问题?
您使用的是 Symfony 3.3,但是 int
环境变量预处理器直到 Symfony 3.4 才添加,根据 this。
我认为您无法使用环境变量来配置此值,因为默认情况下环境变量是字符串。
您的选择是针对不同的环境使用不同的 parameters
文件,就像过去所做的那样(据我所知,使用容器时可能会很不方便);或升级到更新版本的 Symfony。
我有 docker 的配置:
# docker-compose.yml
environment:
REDIS_SERVER: redis
REDIS_PORT: 6379
然后在 symfony 中我用它来配置参数:
# parameters.yml
redis_port: %env(REDIS_PORT)%
And then I use the parameter to configure Picmore's cache:
```yaml
# pimcore.yml
cache:
pools:
redis:
enabled: true
connection:
port: '%redis_port%'
但是我得到了错误
Invalid type for path "pimcore.cache.pools.redis.connection.port". Expected int, but got string.
错误很明显,但我无法解决,我尝试了不同的选择:
redis_port: '%env(REDIS_PORT)%'
redis_port: '%env(int:REDIS_PORT)%'
但是我得到了同样的错误。我该如何解决这个问题?
您使用的是 Symfony 3.3,但是 int
环境变量预处理器直到 Symfony 3.4 才添加,根据 this。
我认为您无法使用环境变量来配置此值,因为默认情况下环境变量是字符串。
您的选择是针对不同的环境使用不同的 parameters
文件,就像过去所做的那样(据我所知,使用容器时可能会很不方便);或升级到更新版本的 Symfony。