我使用sonata admin作为我项目的后端。
我正在尝试过滤记录,这些记录在数据库中具有NULL值,其列来自另一个实体。
有两个实体:一个是Medical,第二个是User。
在医疗中,我尝试为“isLanguagePurchase”设置搜索过滤器,该搜索过滤器位于用户实体中。
代码:
$datagridMapper->add('user.isLanguagePurchase', '', array('label' => 'Is Language Purchase','callback' => function($queryBuilder, $alias, $field, $value) {
if ($value['value'] == '1') {
$queryBuilder->andWhere($alias . '.isLanguagePurchase = 1');
}
if ($value['value'] == '0') {
$queryBuilder->andWhere($alias . '.isLanguagePurchase IS NULL');
$queryBuilder->orWhere($alias . '.isLanguagePurchase = 0');
}
},'field_type' => 'choice','field_options' => array('choices'=> array('Yes' => 1, 'No' => 0))));
但是,它只搜索0和1值记录,而不是NULL值记录。