在我的每個控制器上,我需要從構造函數運行安全性強制函數。問題是我無法在構造函數中運行doctrine實體管理器以從會話中加載用戶標識,並在我的用戶實體上調用findby函數。 我發現的唯一方法是在我的每個動作上調用這個安全強制函數,這不是最優的 - 代碼不乾淨,以及大量的函數調用。 我已經搜索並測試了很多來自於stackoverflow的用戶解決方案 - 其中許多是複製粘貼其他人不工作的代碼。 我services.yml文件:Symfony2傳遞給構造函數實體管理器拋出錯誤
services:
app.default_controller:
class: AppBundle\Controller\DefaultController
arguments:
- @doctrine.orm.entity_manager
我DefaultController類(其採樣控制器):
<?php
namespace AppBundle\Controller;
use Doctrine\ORM\EntityManager;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class DefaultController extends Controller
{
protected $em;
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
// replace this example code with whatever you need
return $this->render('default/index.html.twig', array(
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..'),
));
}
public function __construct(EntityManager $em = null){
$this->em=$em;
$personRepository = $this->getDoctrine()->getManager()->getRepository('AppBundle\Entity\Person');
//$em = $this->getDoctrine()->getManager();
}
}
我總是有原則錯誤不管我不是構造函數來完成。 Often error example, when im trying to access website
PS。我正在使用Symfony 2.8.2,此代碼示例不是來自實際應用程序