使用Symfony 6.1,我希望有一个自定义的EntityType表单类型,它允许我设置NULL(空表单字段),但在<select>
中有一个占位符
<?php
namespace App\Form\Type;
use App\Entity\Admin;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolver;
class AdminEntityType extends AbstractType
{
public function getParent(): string
{
return EntityType::class;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'class' => Admin::class,
'label' => 'Admin :',
'choice_label' => function (?Admin $admin): string {
if ($admin instanceof Admin) {
return trim(
($admin->getFirstName() ?? "") . " " .
($admin->getLastName() ?? "") .
" (" . $admin->getEmail() . ")"
);
}
return '';
},
'required' => false,
'mapped' => true,
'multiple' => false,
]);
}
}
此表单域在筛选器中使用,因此如果它为NULL,我希望有一个选择选项“全部”。提交此选项时,它将被视为空数据。如果我用数据填充表单,并且此域为NULL,则也应该预先选择此选项。
我已经试过了我能想到的一切,但我不能弄清楚这个。有什么主意吗?
1条答案
按热度按时间pbossiut1#
如果我没有理解错的话,您应该设置
placeholder
选项:https://symfony.com/doc/current/reference/forms/types/choice.html#placeholder
如果我用数据填充表单,并且此字段为NULL,则也应该预先选择此字段。
现在,这可以通过FormEvents来实现,在本例中就是
SUBMIT
表单事件请参阅有关表单事件的文档:
https://symfony.com/doc/current/form/dynamic_form_modification.html