【问题标题】:read configuration settings from validation.yml从 validation.yml 读取配置设置
【发布时间】:2014-01-22 22:24:00
【问题描述】:

我想读取自文件“validation.yml”以来的任何参数设置,但尝试执行时不会被解释。

例子:

在 PHP 中会得到参数“locale”,如下所示:

$locate = $this->container->getParameter('locale');

当我尝试在文件“validation.yml”中做同样的事情时

# validation.yml
App\LoginBundle\Validations\Login:
    properties:
        field:
            - NotBlank:
                message: "%locale%"

可见结果字面意思是:%locale%

有什么想法吗?

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    目前不可能将容器参数直接包含在验证映射文件中的验证消息中。

    这是因为验证类元数据与容器配置没有关系

    直到 symfony 2.1 container-parameters 也不能用于路由定义。

    The ability to use parameters in your routes was added in Symfony 2.1.
    

    (见:How to use Service Container parameters in your routes

    【讨论】:

      【解决方案2】:

      也许试试不带引号?

      # validation.yml
      App\LoginBundle\Validations\Login:
          properties:
              field:
                  - NotBlank:
                      message: %locale%
      

      【讨论】:

      • 是的,我试试,结果是一样的
      • %_locale%_locale 怎么样?
      • 我试过了:%locale%, "%locale%", %_locale%, "%_locale%", locale, _locale,结果是一样的。
      • 因此尝试在validation.yml 文件中使用例如__locale__ 模式,然后在控制器或树枝中用真正的locale 变量替换此模式
      • 这个方法效果很好,但是我想找一个直接的方法。
      猜你喜欢
      • 2013-09-24
      • 2010-12-30
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      相关资源
      最近更新 更多