为什么在调用控制器内的控制器时会出现以下错误?
/home/web/project/symfony2/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php中的
致命错误:在第149行调用非对象上的成员函数get()
在控制器中,我调用了一个扩展Controller的类
class DemoController extends Controller
{
public function indexAction()
{
$object = new \Acme\DemoBundle\Service\Object();
$object->method();
}
// ...
}这门课是这样的:
# Acme/DemoBundle/Service/Object.php
class Object extends Controller
{
public function method()
{
$em = $this->getDoctrine()->getEntityManager(); // the problem
// ...
}
}当我使用$this调用服务、理论或控制器中的其他东西时,就会发生错误。否则,它就奏效了。
例如,我怎样才能在这门课中使用教义?
发布于 2012-05-23 09:45:01
试一试
$object->setContainer($this->container);在打电话给method()之前
编辑:基本上,让一个服务扩展Controller是个坏主意,但是如果您确实需要这样做,那么尝试添加以下内容
your.service:
class: Your\Class
arguments: [...]
calls:
- [ setContainer, [@service_container] ]在您的服务配置文件中(可能是service.yml)
https://stackoverflow.com/questions/10715849
复制相似问题