在能够与其他人的帖子和答案一起管理之后,这是有史以来的第一篇帖子。
我创建了一个事件侦听器,需要在其中创建一个“子”实体,以便将其添加到“父”实体的arrayCollection中。 我之前已经创建了实体,没有收到错误消息,但是看来该实体实际上从未真正创建过,也没有添加到父级的实体arrayCollection中。
已经检查了其他帖子,但是它指示了如何从控制台创建新实体,因此在这种情况下对我没有多大帮助。
代码如下所示。
我知道我可以使用它,因为我可以转储局部变量。我还可以看到$entityEvent
对象,但是它永远都不会以某种方式保存。
如果我错过了项目代码中其他地方的任何更改,以防万一:
namespace App\Event\Listener;
# Doctrine Components
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\EntityManagerInterface;
# App Components
use App\Entity\Api\Entity;
use App\Entity\Api\EntityEvent;
use Doctrine\ORM\Event\PreUpdateEventArgs;
// Entity repository
// use App\Entity\Api\Repository\entityEventEntityRepository;
class EntityListener {
public $em;
public function __construct(EntityManagerInterface $em) {
$this->em = $em;
}
public function postUpdate(Entity $entity, LifecycleEventArgs $event) {
$objectManager = $event -> getObjectManager();
$entityEvent = new entityEvent();
$entityEvent -> setEntity($entity);
$entityEvent -> setStatus($entity -> getStatus());
$entity -> addEntityEvent($entityEvent);
$objectManager -> persist($entityEvent);
$objectManager -> flush();
}
}
我本来希望$entityEvent
能够持久存在并刷新到数据库中,并且$ entity对象会正确地将其添加到数据库中。
相反,什么也得不到保存。
为什么我没有得到预期的行为?