Sonata/Symfony 使用 MongoDB 过滤 Null
Sonata/Symfony using MongoDB filtering for Null
我正在尝试在 sonata admin 中自定义一个过滤器,returns 所有在一个特定字段上具有 null 的对象...在 MySQL 中,有一个我曾经使用过的函数获取为空的空值。
我正在尝试做同样的事情,但这次使用 mongo 它给出了一个错误,即未定义 isnull 函数。 odm中有没有类似form的函数可以使用?
我的代码如下:
->add("isRoot", 'doctrine_mongo_callback', array(
'callback' => function ($queryBuilder, $alias, $field, $value) {
/**
* @var QueryBuilder $queryBuilder
*/
if ($value['value']) {
if ($value['value'] == 0) {
$queryBuilder->andWhere($queryBuilder->expr()->isNull($alias.'.mainCategory'));
return true;
} else {
$category = $this->getConfigurationPool()->getContainer()->get('doctrine_mongodb.odm.document_manager')->getReference(ArticleCategory::class, $value['value']);
$queryBuilder->andWhere($queryBuilder->expr()->eq($alias.'.category', $category));
return true;
}
}
},
'field_type' => ChoiceType::class,
'field_options' => array(
'choices' => $this->getCategoryChoices()
),
'label' => 'mainCategory'
));
}
ODM中有类似ORM中isNull的函数吗?
错误如下:
试图调用名为“isNull”的未定义方法 class“Doctrine\ODM\MongoDB\Query\Expr”。
所以我想出了如何查询而不是
$queryBuilder->andWhere($queryBuilder->expr()->isNull($alias.'.mainCategory'));
使用以下内容:
$queryBuilder->field('mainCategory')->equals(null);
我在以下 link 上看到了这个解决方案:enter link description here
我正在尝试在 sonata admin 中自定义一个过滤器,returns 所有在一个特定字段上具有 null 的对象...在 MySQL 中,有一个我曾经使用过的函数获取为空的空值。 我正在尝试做同样的事情,但这次使用 mongo 它给出了一个错误,即未定义 isnull 函数。 odm中有没有类似form的函数可以使用? 我的代码如下:
->add("isRoot", 'doctrine_mongo_callback', array(
'callback' => function ($queryBuilder, $alias, $field, $value) {
/**
* @var QueryBuilder $queryBuilder
*/
if ($value['value']) {
if ($value['value'] == 0) {
$queryBuilder->andWhere($queryBuilder->expr()->isNull($alias.'.mainCategory'));
return true;
} else {
$category = $this->getConfigurationPool()->getContainer()->get('doctrine_mongodb.odm.document_manager')->getReference(ArticleCategory::class, $value['value']);
$queryBuilder->andWhere($queryBuilder->expr()->eq($alias.'.category', $category));
return true;
}
}
},
'field_type' => ChoiceType::class,
'field_options' => array(
'choices' => $this->getCategoryChoices()
),
'label' => 'mainCategory'
));
}
ODM中有类似ORM中isNull的函数吗? 错误如下: 试图调用名为“isNull”的未定义方法 class“Doctrine\ODM\MongoDB\Query\Expr”。
所以我想出了如何查询而不是
$queryBuilder->andWhere($queryBuilder->expr()->isNull($alias.'.mainCategory'));
使用以下内容: $queryBuilder->field('mainCategory')->equals(null);
我在以下 link 上看到了这个解决方案:enter link description here