【问题标题】:Symfony2 - Call to undefined method getDoctrine() when overriding FOSUserBundle's ProfileControllerSymfony2 - 覆盖 FOSUserBundle 的 ProfileController 时调用未定义的方法 getDoctrine()
【发布时间】:2014-04-03 14:57:18
【问题描述】:

当我覆盖 FOSUserBundle 的 ProfileController 并添加这些行时:

  $em = $this->getDoctrine()->getManager();
  $resultat = $em->getRepository('PublishDemandsBundle:Demands')->findAll();

我收到以下错误:

调用未定义的方法 Register\UserBundle\Controller\ProfileController::getDoctrine() 在 ProfileController.php。

【问题讨论】:

  • 您的 ProfileController 看起来如何?看起来您没有扩展默认控制器类。
  • FOSUserBundle 的 ProfileController 扩展了 ContainerAware 而不是 Controller。因此,您需要:使用$this->container->get('doctrine') 或自己将getDoctrine() 添加到覆盖的 ProfileController。

标签: symfony doctrine-orm fosuserbundle


【解决方案1】:

将此别名方法添加到控制器解决了问题:

public function getDoctrine()
{
    return $this->container->get('doctrine');
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-17
    • 2016-03-30
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2016-03-13
    相关资源
    最近更新 更多