在YAML(Symfony框架)中合并可重用块

时间:2018-11-08 10:20:26

标签: symfony yaml config

在Symfony中,我尝试将YAML的一个块从parameters.yml合并到config.yml。我的问题是如何在Symfony 3.4中存储一些配置,然后插入到我的配置文件中。现在我有一个错误:

  

在Parser.php第290行中:
    第188行不存在引用“'%insurance%'”(在“ <<:附近:     *'%insurance%'“)。

parameters.yml

parameters:
    Insurance: &insurance
    list:
        title: '<strong>Ubezpieczenia</strong>'
        sort: ['sequence', 'ASC']
        fields:
            - { property: 'sequence', label: 'Kolejność'}
            - { property: 'title', label: 'Tytuł'}
            - { property: 'description', label: 'Opis'}
        form:
            fields:
                - { property: 'title', type: 'text', label: 'Tytuł'}
                - { property: 'description', type: 'ckeditor', label: 'Opis',
                    type_options: { config_name: 'simple_config' }}
                - { property: 'sequence', type: 'integer', label: 'Kolejność'}

config.yml

imports:
- { resource: parameters.yml }
easy_admin:
    [...]
    entities:
        [...]
        MotorInsurance:
            class: AppBundle\Entity\MotorInsurance
            label: menu.motorInsurance
            <<: *'%insurance%'
  

[...]有不相关的配置

调用Inusrance块时我做错什么了吗?

2 个答案:

答案 0 :(得分:0)

这不起作用。不同文件是独立分析的,因此您不能在一个YAML文件中重用另一个YAML文件中定义的引用。

解决方案是将所需的所有配置都放在同一文件中。

答案 1 :(得分:0)

所以我再试一次,@ xabbuh是正确的。我忘记了我在config.yml中也阻止了参数。我的文件现在看起来像这样:

parameters:
    locale: pl
    Insurance: &insurance
        list:
            title: '<strong>Ubezpieczenia</strong>'
            sort: ['sequence', 'ASC']
            fields:
                - { property: 'sequence', label: 'Kolejność'}
                - { property: 'title', label: 'Tytuł'}
                - { property: 'description', label: 'Opis'}
        form:
            fields:
                - { property: 'title', type: 'text', label: 'Tytuł'}
                - { property: 'description', type: 'ckeditor', label: 'Opis',
                    type_options: { config_name: 'simple_config' }}
                - { property: 'sequence', type: 'integer', label: 'Kolejność'}
easy_admin:
[...]
entities:
    [...]
    MotorInsurance:
        class: AppBundle\Entity\MotorInsurance
        label: menu.motorInsurance
        <<: *insurance

这很好用:)一切都可以被您覆盖。