使用EntityEnabler的Symfony依赖项注入
我不得不打电话给服务中的控制员。以这种方式,我创建了connstuct函数并添加了参数EntityEnabler使用EntityEnabler的Symfony依赖项注入,symfony,dependency-injection,doctrine-orm,Symfony,Dependency Injection,Doctrine Orm,我不得不打电话给服务中的控制员。以这种方式,我创建了connstuct函数并添加了参数EntityEnabler class UsersController extends Controller { private $em; public function __construct(EntityManager $em) { $this->em = $em; } 并为该控制器定义了服务 services: user_controller:
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');
在其他控制器中,一切正常
但当我调用self-controller时,我会出错
Catchable Fatal Error:
Argument 1 passed to AppBundle\Controller\UsersController::__construct()
must be an instance of Doctrine\ORM\EntityManager, none given,
我在哪里犯错误?我只是在这个时候做一些难看的事情来解决问题 我删除了uu construc类,并将EntityManager作为所需参数添加到需要EntityManager类的函数中
public function getLoggedUserData($loggedUserId, $entityManager)
{
$user = $entityManager->getRepository('...')
$newRequests = $entityManager->getRepository('...')
如果控制器是一个简单类(不是扩展控制器),则只能将其定义为服务 见: 特别是:
清除缓存,然后重试。我试图清除缓存,但没有得到任何帮助:/因此,打开一个构建的容器文件,检查
userscoontroller
是如何准确实例化的它在路由文件中是如何定义的?@StevanTosic可能是服务文件尚未加载?