我对doctrine2很新。我需要建立这样的连接:
Tag已连接(抽象)资源。 (摘要)资源有标签。
我想基于代码以实际形式输入Entity资源的对象。所以这样我就可以将标签附加到任何实现给定接口的实体。
我在学说中使用Zend Framework和注释docblock样式。
另一个例子是“消息”实体在系统中重复文本消息,它有作者和收件人关联,但我想根据作者和收件人为它们设置不同的目标。例如,管理实体向用户实体发送消息,或者用户实体向VipUser实体发送消息。
答案 0 :(得分:2)
听起来像Class Table Inheritance是完美的解决方案。
您基本上需要创建父类(标记)并为其每个子项提供一个鉴别器映射。所以例如..
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"tag" = "Tag", "message" = "Message", "otherentity" = "OtherEntity"})
*/
class Tag
{
// tag properties / definitions etc
}
/** @Entity */
class Message extends Tag
{
// Message specific stuff
}
您可以在您需要的任何其他实体上扩展“标记”实体。请记住更新它的鉴别器映射值。
答案 1 :(得分:1)