学说PHPCR @Children& @儿童

时间:2015-02-15 09:36:29

标签: doctrine symfony-cmf doctrine-phpcr

我开始在Symfony-CMF中使用doctrine学习PHPCR,我有一个问题。 是否可以在同一文档的2个不同属性上使用@Children和@Child?

根据文件......

  

带注释的实例变量将直接在文档层次结构中的实例变量文档类下面填充文档。

我认为每个文档应该只有一个@Children或@Child。但是,如果将不同的文档放入同一属性中,如何管理表单?我不清楚这个用法。我应该选择@Children& @ReferenceOne / @ReferenceMany on the others?

1 个答案:

答案 0 :(得分:1)

PHPCR是一棵树,每个节点都位于其父节点下。对于父节点,这是一个子节点。使用@Child时,您可以使用字段为一个特定的子项添加地址。使用@Children映射所有子文档,具有此映射的成员变量包含集合。请注意,存在中间立场:您可以指定通过子项的命名模式过滤@Children。

确实你可以在@Child和@Children中使用同一个孩子 - 我们建议不要内联编辑未经过滤的子集合,但要建立链接。如果你有一个过滤的儿童集合和一个单独的孩子,事情可以很好地解决。

引用是不遵循树层次结构的交叉链接。他们的效率低于亲子关系。你应该只将它们用于次要关系,但要将你的主要内容保存在树中。