1

可以使用以下方法简单地过滤检索到的文档:

$dm->findBy(array('field' => 'value'))

但我需要一些更适合内容存储库细节的东西。那么,有没有一种方法可以检索文档(例如,相当于“SELECT ... WHERE ...”),通过以下方式过滤:

  • 一个数组元素(例如,由具有多个值的字段的第一个元素:类似于 arrayFields[0])
  • 路径节点,例如,我想在给定路径下获取唯一的孩子(但不使用文档的 getChildren() 方法),例如 /cms/routes/categories - 这应该只返回具有“/cms/routes/categories”的文档他们路径的开始(或 Id 字段)

?

4

1 回答 1

0

似乎(还没有?)没有可用的 API 可用于所提到的确切解决方案。PHPCR(不是 ODM)具有以某种方式完成这些任务的功能。

上述任务可以通过以下方式完成:

  1. 仅按多值字段过滤。例如,如果您将“作者”字段作为数组,PHPCR 似乎可以按可用的第一作者正确排序和过滤文档;此外,在 PHPCR(同样,不是 ODM)API 中有一个等效于 in_array() PHP 函数。它被视为任何其他(非多值)字段 - http://doctrine-phpcr-odm.readthedocs.org/en/latest/reference/query-builder-reference.html#literal

  2. 通过路径过滤,有三种可能(我根据需要提到的一种是第三种):

有关更多信息,请参阅以下文档:http: //doctrine-phpcr-odm.readthedocs.org/en/latest/reference/query-builder.htmlhttp://doctrine-phpcr-odm.readthedocs.org/en/最新的/reference/query-builder-reference.html

于 2015-03-23T11:42:54.003 回答