symfony - 如何在奏鸣曲中获取字段类型的自定义值?
问题描述
使用 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',
])
任何想法 ?
解决方案
我找到了解决方案。我创建了一个特定的模板,并在其中翻译了我想要的值:
->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 %}