繁体   English   中英

原则中的Symfony一般实体关系

[英]Symfony general entity relationship in Doctrine

我需要实现一个PendingMessage类来存储Symfony2应用程序的某些实体的通知。 有时会为一个实体创建通知,有时会为另一个实体(有很多实体)创建通知。

有什么方法可以在此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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM