0

ライフサイクルコールバックを含む抽象クラスを拡張するクラスを使用しています。抽象クラスに @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  {
    // ...
}
4

1 に答える 1