【问题标题】:Adding and removing elements from doctrine mongodb ODM results - PHP在学说 mongodb ODM 结果中添加和删除元素 - PHP
【发布时间】:2012-08-17 07:07:54
【问题描述】:

您如何删除和添加元素到由学说的 odm 返回的结果中。例如,

我有问题

$fruits = $dm->createQueryBuilder('Fruits') ->field('id')->in($fruit_list) ->getQuery()->execute();

$fruits 返回的是一个数组,然后我需要遍历它 经过一些分析,排列并过滤一些水果。入围名单是 无法通过查询生成器,我需要返回过滤的 结果。

我想问如何从odm返回的这个对象中删除元素。

【问题讨论】:

    标签: php symfony-2.1 doctrine-odm


    【解决方案1】:

    当您迭代 $fruits 并做出入围决定时,创建一个 ArrayCollection 并添加所有进行剪切的对象并返回它而不是光标。

    【讨论】:

      【解决方案2】:

      我不确定我是否完全理解您,我假设您正在尝试从 ODM 返回的实体中删除一些字段。

      我会关闭水合作用并使用一个简单的阵列。

      例子:

      $fruits = $dm->createQueryBuilder('Fruits')
                   ->field('id')
                   ->in($fruit_list)
                   ->hydrate(false) /* Turn off hydration */
                   ->getQuery()->execute();
      

      现在您所要做的就是使用 unset 并从数组中删除想要的元素。

      【讨论】:

      • 谢谢,但我必须处理 2 种情况 - 一种有保湿作用,另一种没有。我已经像你说的那样处理了非水合的情况。但如果我也能为水合物体做这件事,那就太好了。那么,对于水合的物体,是否有任何操作,例如取消设置,删除。
      • 您不能从 php 对象中删除字段,这与教义无关...您如何处理这些对象?如果有帮助,您可以将字段值设置为 null
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多