2

タイトルがすべてを説明しています。エンティティにlifecyclecallback関数があります。エンティティからではなく、PostPersistイベントから最後に挿入されたIDを取得したい。例として、私はやりたくない

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

ドキュメントにはそれが書かれています

postPersist-エンティティが永続化された後、postPersistイベントがエンティティに対して発生します。これは、データベースの挿入操作の後に呼び出されます。生成された主キー値は、postPersistイベントで使用できます。

では、postPersistで主キーの値を取得するにはどうすればよいですか?(私はMappedsuperclassを使用しており、postpersist関数はMappedsuperclassにあるため、Mappedsuperclassを拡張するすべてのエンティティで使用できます)ありがとうございます。

4

1 に答える 1

4
...
public function postPersist(\Doctrine\ORM\Event\LifecycleEventArgs $e) {
    $newSeating = $e->getEntity();
    $id         = $newSeating->getId();
}
...
于 2011-07-06T12:59:06.367 に答える