我需要实现一个PendingMessage类来存储Symfony2应用程序的一些实体的通知。有时会为一个实体创建通知,有时会为另一个实体创建通知(有许多实体)。Symfony在Doctrine中的一般实体关系
有没有办法在这个PendingMessage类中做一个ORM关系来存储一个实体,但不是一个特定的实体类型,只是一个普通的实体(类),为了有一个名为'$ destination'的属性应该是一个实体类型。
我应该实现一个接口吗?欢迎任何帮助!
我需要实现一个PendingMessage类来存储Symfony2应用程序的一些实体的通知。有时会为一个实体创建通知,有时会为另一个实体创建通知(有许多实体)。Symfony在Doctrine中的一般实体关系
有没有办法在这个PendingMessage类中做一个ORM关系来存储一个实体,但不是一个特定的实体类型,只是一个普通的实体(类),为了有一个名为'$ destination'的属性应该是一个实体类型。
我应该实现一个接口吗?欢迎任何帮助!
您可以将2个参数添加到您的PendingMessage实体,一个entityName
,另一个entityID
。
有了这些参数,你可以访问该存储库中的控制器一样
$em = $this->getDoctrine()->getManager();
$pendingMessage = $this->getRepository('youBundle:PendingMessage')->find(1234);
$targetEntity = $this->getRepository('yourBundle:'.$pendingMessage->getEntityName())->find($pendingMessage->getEntityID());
如果你想用这个PendingMessage每一个实体可以做同样的操作,我会写将要使用的接口通过您将使用的每个存储库,可以确保在您将动态接收的每个存储库中提供此函数。
如果这不是你想要的,请澄清你的问题。
您可以在PendingMessage实体中添加字段,您将在其中存储为其创建此消息的序列化实体。
然后如果你想改变这个特殊的实体,你会做这样的事情:
$pendingMessage = $this->getRepository('Bundle:PendingMessage')->find(1);
$detachedEntity = $pendingMessage->getDestination();
$entity = $em->merge($detachedEntity);
$entity->anyChangesYouWant();
是的,我想这就是我要找的......但我不知道该怎么实现这个...这两个参数的接口? – jmunozco