【问题标题】:Expected int, but got string for redis port预期 int,但得到了 redis 端口的字符串
【发布时间】:2023-03-31 09:31:01
【问题描述】:

我有这个 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%'

但我得到了错误

路径“pimcore.cache.pools.redis.connection.port”的类型无效。应为 int,但得到的是字符串。

错误很明显,但我无法解决,我尝试了不同的选项:

redis_port: '%env(REDIS_PORT)%'
redis_port: '%env(int:REDIS_PORT)%'

但我得到了同样的错误。我该如何解决这个问题?

【问题讨论】:

    标签: php symfony environment-variables symfony-3.3 pimcore


    【解决方案1】:

    您使用的是 Symfony 3.3,但根据 this,直到 Symfony 3.4 才添加了 int 环境变量预处理器。

    我认为你不能使用 env vars 来配置这个值,因为默认情况下环境变量是字符串。

    您的选择是为不同的环境使用不同的 parameters 文件,因为当时的事情过去(我知道使用容器时可能会不方便);或升级到最新版本的 Symfony。

    【讨论】:

      猜你喜欢
      • 2022-12-17
      • 1970-01-01
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多