微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

预期为 int,但得到了 redis 端口的字符串

如何解决预期为 int,但得到了 redis 端口的字符串

我有 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”的类型无效。预期为整数,但得到字符串。

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

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

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

解决方法

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

我认为您无法使用 env vars 来配置此值,因为默认情况下环境变量是字符串。

您的选择是针对不同的环境使用不同的 parameters 文件,就像当时过去所做的那样(我知道使用容器时可能会很不方便);或升级到更新版本的 Symfony。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。