在Symfony 3.3项目中,我在
定义了一个类../AppBundle/Helper/ProgramHelper
像这样
class ProgramHelper implements ContainerAwareInterface
{
use ContainerAwareTrait;
protected $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
}
在services.yml中我像这样添加了
services:
...
app.helper.program_helper:
class: AppBundle\Helper\ProgramHelper
tags:
- { name: app.helper, alias: 'container_aware' }
arguments: [ "@doctrine.orm.entity_manager" ]
calls:
- [setContainer, ['@service_container']]
现在 - 尝试从像
这样的控制器访问该类$ph = $this->get('app.helper.program_helper');
导致此错误
ServiceNotFoundException
You have requested a non-existent service "app.helper.program_helper".
非常感谢任何关于这个问题的提示。
答案 0 :(得分:4)
@Cerad回答了这个问题 - 谢谢!
将public:true添加到服务定义中。服务现在是私人的 默认情况下,这意味着您无法再通过get访问它们。 bin / console debug:container将确认该服务是否可用。