我正在尝试从侦听器上的prePersist()
访问setUser()
方法,但出现此错误:
致命错误异常: 错误: 调用未定义的方法 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
?我如何解决这个问题?我做错了什么?
doctrine.event_listener将侦听应用程序中的所有实体,如果您只想对"OrderHasComment"实体进行操作,只需检查类的实例。
if ($entity instanceof OrderHasComment) {
$entity->setUser($user);
}