1

对于工作中的项目,我们使用 PHPCR-ODM。我们有一个包含以下字段的文档:

/**
 * @var \Doctrine\Common\Collections\ArrayCollection
 * @PHPCRODM\ReferenceMany(targetDocument="SystemSize")
 */
private $system_sizes;

我们想为用户提供一个复选框列表 - 每个可能的 SystemSize 一个复选框 - 然后搜索包含至少一个指定 SystemSize 的任何文档。

例如,假设对象 A 有 Small 和 Large,对象 B 有 Medium 和 Large,而对象 C 有 Large。用户选择中小型。我们应该找到对象 A 和 B。

我的一位同事建议创建一个附加字段来表示所有引用文档的列表 - 因此在这种情况下,一个名为 system_sizes_list 的文本字段 - 然后使用 LIKE 比较来搜索该字段。

考虑到我们在使用 PHPPCR-ODM 时遇到的诸多限制,这可能是最好的解决方案……但我真的不想相信它;肯定有更好的方法!就是找不到>_>

可能相关:PHPCR-ODM 不(目前?)支持leftJoin(), in(), or orX()->addMultiple()(尽管您可以orX()->addMultiple()使用call_user_func_array()...进行模拟)

4

0 回答 0