在奏鸣曲布尔过滤器中包含空值

问题描述

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]])

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...