无法从prePersist事件侦听器访问OrderHasComment公共方法

时间:2014-03-02 14:09:07

标签: symfony dependency-injection doctrine-orm

我正在尝试从侦听器上的setUser()访问prePersist()方法,但是我收到此错误:

  

FatalErrorException:错误:调用未定义的方法   PL \ OrderBundle \ Entity \ Order :: setUser()in   /var/www/html/apps/portal_de_logistica/src/PL/OrderBundle/Listener/OrderHasCommentListener.php   第23行

这是方法:

/**
 *
 * @param LifecycleEventArgs $args 
 */
public function prePersist(LifecycleEventArgs $args) {
    $entity = $args->getEntity();
    $user = $this->container->get('security.context')->getToken()->getUser();
    $entity->setUser($user);
}

为什么它会访问Order而不是OrderHasComment?我怎么解决这个问题?我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您只想对" OrderHasComment"实体只是检查类的实例。

    if ($entity instanceof OrderHasComment) {
        $entity->setUser($user);
    }