2016-07-24 2 views
1

Мне пришлось вызвать контроллер на обслуживании. Таким образом, я создал функцию connstruct и добавить параметр EntityMenagerИнъекционная инъекция Symfony с 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

Итак, откройте встроенный файл контейнера и проверьте, как точно создается экземпляр 'UserController' – zerkms

ответ

1

Я просто уродливо взламываю и решаю проблему в этот момент.

Я удалил класс __construc и добавил EntityManager в качестве необходимого параметра для функции, которая нуждается в классе EntityManager.

public function getLoggedUserData($loggedUserId, $entityManager) 
    { 
     $user    = $entityManager->getRepository('...') 
     $newRequests  = $entityManager->getRepository('...') 
Смежные вопросы