gpt4 book ai didi

symfony - 在 Controller 内部调用 Controller

转载 作者:行者123 更新时间:2023-12-04 18:20:51 27 4
gpt4 key购买 nike

为什么在 Controller 内部调用 Controller 时会出现以下错误?

Fatal error: Call to a member function get() on a non-object in /home/web/project/symfony2/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php on line 149



在 Controller 中,我调用了一个扩展 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在 Controller 中调用服务、原则或其他类似的东西时,就会发生错误。否则,它会起作用。

例如,我如何在此类中使用教义?

最佳答案

尝试

$object->setContainer($this->container);

在您调用 method() 之前

编辑:
基本上,让服务扩展 Controller 是个坏主意但如果你 真的需要这样做,尝试添加这个
your.service:
class: Your\Class
arguments: [...]
calls:
- [ setContainer, [@service_container] ]

在您的服务配置文件中(可能是 service.yml )

关于symfony - 在 Controller 内部调用 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715849/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com