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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并YAML中的可重用块(Symfony框架)相关的知识,希望对你有一定的参考价值。

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

在Parser.php第290行: 第188行(“<<:*'%保险%'”附近)不存在参考“'%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: AppBundleEntityMotorInsurance
            label: menu.motorInsurance
            <<: *'%insurance%'

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

当我打电话给Inusrance时,我做错了吗?

答案

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

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

另一答案

所以我再试一次,@ 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: AppBundleEntityMotorInsurance
        label: menu.motorInsurance
        <<: *insurance

这很好用:)也可以为你的思想覆盖一切。

以上是关于合并YAML中的可重用块(Symfony框架)的主要内容,如果未能解决你的问题,请参考以下文章

使用空合并运算符重用的原子代码块

合并具有完全相同代码的 catch 块? [复制]

具有嵌套元素的可重用块 - SCSS [重复]

用于消除 Symfony2 中重复代码的特征、辅助服务或继承

软件构架,架构和框架的区别

React 中的可重用组件