ライフサイクルコールバックを含む抽象クラスを拡張するクラスを使用しています。抽象クラスに @ORM\MappedSuperclass のアノテーションが付けられていますが、コールバックがトリガーされません。この件に関してあちこちで多くの問題を見ましたが、具体的な答えはありませんでした。誰かが本当にうまくいく解決策を持っていますか? (コールバック メソッドを手動で呼び出すと、すべてが完全に機能することを指定します)
このリンクの答えは私にはうまくいきません:
Doctrine 2 抽象基本クラスを持つ LifecycleCallbacks は呼び出されません
(でも問題は同じ)
<?php
// ...
/**
* @ORM\MappedSuperclass
* @ORM\HasLifecycleCallbacks
*/
abstract class Picture {
// ...
/**
* @ORM\PrePersist()
* @ORM\PreUpdate()
*/
public function preUpload() {
echo 'preUpload ';
if (null !== $this->getFile()) {
$this->picture = $this->getNewFilename(10);
}
}
}
/**
* User
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Myown\UserBundle\Entity\UserRepository")
*/
class User extends Picture {
// ...
}