我有一个包含EntityType类型字段的表单:
$builder->add(
'contacts',
EntityType::class,
[
'label' => 'Recipient',
'required' => false,
'expanded' => true,
'multiple' => true,
'class' => 'MyApp\Entity\Contact',
'choice_label' => 'name',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('c')
},
'group_by' => function (Contact $contact, $key, $index) {
return $contact->getClient()->getName();
},
]
);
如您所见,表单显示复选框,标签为Contact-> getName()。
每件事情都是正确的,表格会显示每个复选框,如:
<input id="id_checkbox" type="checkbox" />
<label for="id_checkbox">name</label>
现在,对于每个复选框,我想添加额外的数据,如电子邮件地址。我希望复选框显示如下:
<input id="id_checkbox" type="checkbox" />
<label for="id_checkbox"><span title="contact_email">contact_name</span></label>
如何将电子邮件数据传递给模板(树枝块)?
答案 0 :(得分:3)
请参阅choice_label
的文档:http://symfony.com/doc/current/reference/forms/types/entity.html#choice-label
您修改的代码类似于:
$builder->add(
'contacts',
EntityType::class,
[
'label' => 'Recipient',
'required' => false,
'expanded' => true,
'multiple' => true,
'class' => 'MyApp\Entity\Contact',
'choice_label' => function ($contact) {
return sprintf('%s (%s)', $contact->getName(), $contact->getEmail());
},
// ...
]
);