Php 论一般实体关系

Php 论一般实体关系,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我需要实现一个PendingMessage类来存储Symfony2应用程序的一些实体的通知。有时会为一个实体创建通知,有时会为另一个实体创建通知(有许多实体) 有没有办法在这个PendingMessage类中建立ORM关系来存储一个实体,而不是一个特定的实体类型,只是一个通用实体(类),以便有一个名为“$destination”的属性,它应该是一个实体类型 我应该实现一个接口吗?欢迎任何帮助 您可以向PendingMessage实体添加两个参数,一个是entityName,另一个是entityI

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

有没有办法在这个PendingMessage类中建立ORM关系来存储一个实体,而不是一个特定的实体类型,只是一个通用实体(类),以便有一个名为“$destination”的属性,它应该是一个实体类型


我应该实现一个接口吗?欢迎任何帮助

您可以向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实体添加两个参数,一个是
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();

您可以在PendingMessage实体中添加字段,您将在其中存储为其创建此消息的序列化实体

然后,如果您想更改此特定实体,您可以执行以下操作:

$pendingMessage = $this->getRepository('Bundle:PendingMessage')->find(1);
$detachedEntity = $pendingMessage->getDestination();
$entity = $em->merge($detachedEntity);
$entity->anyChangesYouWant();

是的,我想这就是我要找的。。。但我不知道如何实现这个。。。有这两个参数的接口?是的,我想这就是我要找的。。。但我不知道如何实现这个。。。具有这两个参数的接口?如何存储此序列化实体?如何存储此序列化实体?