如何使用 ZF2 和 Doctrine 从实体内部确定鉴别器列值

How to determine the discriminator column value from within an entity with ZF2 and Doctrine

我想使用 Doctrine 的 preflush 功能,根据其他元素的值自动设置表单元素的值。我的 ZF2 实体中的 preflush 语句可能如下所示:

/**
 * set eventEndDate = eventStartDate for single-day events on pre flush.
 *
 * @ORM\PreFlush
 * @return void
 */
public function onPreFlush(PreFlushEventArgs $args)
{
    $currentEventType = $this->getEventType();

    if ($currentEventType=='meeting') {
        $this->eventEndDate = $this->getEventStartDate();
    }

}

我的挑战是我没有 getEventType() getter 因为 eventType 是我的继承映射中的鉴别器列。实体中的预冲函数如何从实体内部评估鉴别器值?

您可以使用 instanceof php 运算符来检查对象的 class。像这样:

if ($this instanceof MeetingEntityClass) {
    //...
}