问题描述
final class SomeAdmin extends AbstractAdmin
{
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper->add('sending_error',null,[
'label' => 'some label;',]);
}
}
// ...
class Entity
{
/**
* @var bool|null
*
* @ORM\Column(type="boolean",nullable=true)
*/
private $sending_error;
// ...
}
此代码生成具有两个值的过滤器:是/否。 “yes”选项将在字段中返回值为“true”的行,过滤器的“false”选项将在db字段中返回值为“false”的行,但如何在“no”过滤器选项中包含值为“null”的行?
解决方法
如果您在 add() 选项中设置它们,您可以为过滤器添加自定义选项。
对于 4.3 之前的 symfony 版本和 Sonata-admin-bundle 3 你可以这样做:
$datagridMapper
->add('sending_error','doctrine_orm_string',array(),'choice',array('choices' => array('m' => 'Male','f' => 'Female')
)
);
对于最新版本(我在本地进行了测试并且对我有用)
->add('sending_error',null,['label' => 'some label'],ChoiceType::class,[
'choices' => ['True' => True,'False' =>False,'Empty'=>null]])