我有一个控制器
use Doctrine\ORM\EntityManagerInterface:
class ExampleController{
public function someFunction(ExampleService $injectedService){
$injectedService->serviceFunction();
}
}
通过服务
use Doctrine\ORM\EntityManagerInterface;
class ExampleService{
public function __construct(EntityManagerInterface $em){
...
}
}
然而,调用someFunction()
失败,因为没有传递0个参数(未注入EntityManagerInterface)。我正在尝试使用Service中的EntityManager。自动装配已开启。我尝试了Symfony3的解决方案,但除非我遗漏了什么,否则它们似乎不起作用。
编辑:这是我的services.yaml:
services:
_defaults:
autowire: true
autoconfigure: true
public: false
App\:
resource: '../src/*'
exclude: '../src/{Entity,Migrations,Tests,Kernel.php}'
App\Controller\:
resource: '../src/Controller'
tags: ['controller.service_arguments']
services: your.service.here: class: app\service\here arguments: [@doctrine.orm.entity_manager]
,但我不确定我是否放置了正确的服务和服务类,或者这是否适用于我的情况。 - BLaZuREsomeFunction()
函数,那么您就需要负责提供注入的服务。依赖注入无法为您做任何事情。 - Rufinus