Доктрина 2 LifecyClecallbacks с абстрактным базовым классом не называется

У меня есть эта ситуация:

Абстрактный класс:

abstract class AbstractBase
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     * @var integer
     */
    protected $id;

    /**
     * @ORM\Column(type="datetime", name="updated_at")
     * @var \DateTime $updatedAt
     */
    protected $updatedAt;

    /**
     * @ORM\PreUpdate
     */
    public function setUpdatedAt()
    {
        die('THIS POINT IS NEVER REACHED');
        $this->updatedAt = new \DateTime();
    }
}

Бетонный класс:

/**
 * @ORM\Entity(repositoryClass="Entity\Repository\UserRepository")
 * @ORM\Table(name="users")
 * @ORM\HasLifecycleCallbacks
 */
class User extends AbstractBase
{
    // some fields, relations and setters/getters defined here, these all work as expected.
}

Затем я называю его в моем контроллере, как это:

$user = $this->em->find('Entity\User', 1);
// i call some setters here like $user->setName('asd');
$this->em->flush();
die('end');

Все работает, как и ожидалось, поэтому ID поле из абстрактного класса создается для объекта пользователя, я могу получить доступ к ней и т. Д. Проблема в том, что линия «умирает (« Эта точка зрения никогда не достигается »)», никогда не достигается. (Обратите внимание на @orm \ Preupdate) Это означает, что LifecyClecallbacks не вызывается Унаследованные объекты. Это ошибка, или есть ли причина для этого?

15
задан smoove 9 September 2011 в 11:32
поделиться