【问题标题】:Sonata/Symfony 使用 MongoDB 过滤 Null
【发布时间】:2021-01-15 04:07:15
【问题描述】:

我正在尝试在奏鸣曲管理中自定义一个过滤器,该过滤器返回在一个特定字段上具有 null 的所有对象...在 MySQL 中,有一个函数用于获取 null 值,即为 null。 我正在尝试做同样的事情,但是这次使用 mongo 会给出一个错误,即未定义 isnull 函数。有没有类似于在odm中使用的形式的功能? 我的代码如下:

->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的功能? 以下是错误: 尝试调用“Doctrine\ODM\MongoDB\Query\Expr”类的名为“isNull”的未定义方法。

【问题讨论】:

    标签: mongodb symfony callback doctrine sonata


    【解决方案1】:

    所以我想出了如何查询而不是

    $queryBuilder->andWhere($queryBuilder->expr()->isNull($alias.'.mainCategory'));
    

    使用以下内容: $queryBuilder->field('mainCategory')->equals(null);

    我在以下链接上看到了这个解决方案:enter link description here

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 2015-12-17
      • 2018-09-12
      • 2017-05-19
      • 2018-07-04
      相关资源
      最近更新 更多