2016-07-24 42 views
1

我不得不打电话给控制器服务。以这种方式我创造connstruct功能,并添加参数EntityMenagerSymfony依赖注入EntityMenager

class UsersController extends Controller 
{ 
    private $em; 

    public function __construct(EntityManager $em) { 
     $this->em = $em; 
    } 

,并对该控制器

services: 
    user_controller: 
    class: AppBundle\Controller\UsersController 
    arguments: 
     ['@doctrine.orm.entity_manager'] 

定义的服务时,我称之为服务

$usersContainer = $this->get('user_controller'); 

在其他控制器一切都很好。

但是当我打电话自我控制,我得到错误

Catchable Fatal Error: 
Argument 1 passed to AppBundle\Controller\UsersController::__construct() 
must be an instance of Doctrine\ORM\EntityManager, none given, 

哪里犯错?

+0

清除缓存然后再试一次。 – zerkms

+0

我试图清除缓存,但没有帮助。 :/ –

+0

因此打开一个构建的容器文件并检查'UsersController'是如何精确实例化的 – zerkms

回答

1

我只是做丑陋的黑客,并在这个时刻解决问题。

我已经删除了__construc类,并将EntityManager作为需要的参数添加到需要EntityManager类的函数中。

public function getLoggedUserData($loggedUserId, $entityManager) 
    { 
     $user    = $entityManager->getRepository('...') 
     $newRequests  = $entityManager->getRepository('...')