首页 > 解决方案 > 如何在奏鸣曲中获取字段类型的自定义值?

问题描述

使用 Sonata,当我创建一个带有choiceType 的合同时,用户可以选择contract1 或contract2,在我的数据库中我会得到contract1 的“451”和contract2 的“678”。
在我的字段列表中显示了我的所有数据,但对于我的合同,我有“451”或“678”,我想要的是合同 1 或合同 2 而不是这些数字。
这是我创建合同的领域:

$mapper
            ->add('contract', ChoiceType::class, [
                'choices' => [
                    'contract1' => '451',
                    'contract2' => '678',
                ],
            ])

在我的字段代码中,我不知道如何判断 451 是否为 'contract1'。我是这样开始的:

->add('contract', null, [
                'label' => 'Contract',
            ])

任何想法 ?

标签: symfonysonata-admin

解决方案


我找到了解决方案。我创建了一个特定的模板,并在其中翻译了我想要的值:

->add('contract', null, [
     'label' => 'Contract',
     'template' => 'AdminBundle:ContractAdmin:list__operation.html.twig'
    ])

还有我的树枝:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
    {% if value %}
        {{ ('contract.operation.'~value~'.value')|trans }}
    {% endif %}
{% endblock %}


推荐阅读