2016-07-24 41 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('...')