【问题标题】:在 Sonata 布尔过滤器中包含空值
【发布时间】:2021-05-12 20:19:00
【问题描述】:
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”的行?

【问题讨论】:

    标签: php symfony sonata-admin sonata


    【解决方案1】:

    如果您在 add() 选项中设置它们,您可以为过滤器添加自定义选项。

    对于 4.3 和 sonata-admin-bundle 3 之前的 symfony 版本,你可以这样做:

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

    【讨论】:

      猜你喜欢
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 2013-07-13
      • 1970-01-01
      相关资源
      最近更新 更多