我有一个如下所示的数据库条目,并尝试使用带有NULL值的高级过滤器搜索记录,但不包含过滤器不起作用。
结果如下所示:
代码用于网格过滤。
$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;
},
))
;
有谁能告诉我这段代码中缺少什么?
谢谢