Доктрина 2 - Как получить идентификатор последнего вставленного идентификатора в PostPersist? - PullRequest
2 голосов
/ 06 июля 2011

Название объясняет все это.У меня есть функция жизненного цикла в сущности.Я хочу получить последний вставленный идентификатор из события PostPersist, а не от объекта.В качестве примера я не хочу делать

$newSeating = new Seat();
$newSeating->setTitle("Something");
$this->_em->persist($newSeating);
$this->_em->flush();
$newSeating->getId();

В документации написано

postPersist - Событие postPersist происходит для объекта после того, как объект стал постоянным.Он будет вызван после операций вставки базы данных.Сгенерированные значения первичного ключа доступны в событии postPersist.

Итак, как я могу получить значение первичного ключа в postPersist?(Я использую Mappedsuperclass, а функция postpersist находится в Mappedsuperclass, поэтому она доступна для каждого объекта, расширяющего Mappedsuperclass). Спасибо.

1 Ответ

4 голосов
/ 06 июля 2011
...
public function postPersist(\Doctrine\ORM\Event\LifecycleEventArgs $e) {
    $newSeating = $e->getEntity();
    $id         = $newSeating->getId();
}
...
...