GridFilter不使用NULL值

时间:2018-01-10 07:13:27

标签: filter sonata-admin

我有一个如下所示的数据库条目,并尝试使用带有NULL值的高级过滤器搜索记录,但不包含过滤器不起作用。

enter image description here

结果如下所示:

enter image description here

代码用于网格过滤。

$dataGridMapper->add('translations.name','',array('label' => 'Name'));

实体主要:

/**
     * @var LeadingServiceTranslations[]
     * @ORM\OneToMany(targetEntity="LeadingServiceTranslations", mappedBy="leadingServices", cascade={"persist", "remove"})
     */
    private $translations;

实体翻译:

 /**
         * @ORM\manyToOne(targetEntity="LeadingServices", inversedBy="translations")
         * @ORM\JoinColumn(name="leading_services_id", referencedColumnName="id", onDelete="CASCADE")
         */
        private $leadingServices;

我也试过过滤器的回调函数,但是它给了我错误:

$dataGridMapper->add('name', 'doctrine_orm_callback', array(
                'callback' => function($queryBuilder, $alias, $field, $value) {
                    if (!$value['value']) {
                        return;
                    }
                    $queryBuilder->leftJoin(sprintf('%s.LeadingServiceTranslations', $alias), 'lst');
                    $queryBuilder->andWhere('lst.name IS NOT NULL');
                    return true;
                },
            ))
        ;

有谁能告诉我这段代码中缺少什么?

谢谢

0 个答案:

没有答案