当前位置: 首页 > 知识库问答 >
问题:

在简单的bundle类中使用容器在Symfony 2中不起作用

郭知
2023-03-14

我的错误:

参数1传递给Agc\ManagerBundle\Lib\grafica::()必须实现接口Symfony\Component\DependencyInject\ContainerInterface,无给定,在第20行的C:\wamp\www\galileo\src\Agc\BackendBundle\Controller\DefaultController.php中调用并定义在C:\wamp\www\galileo\src\Agc\ManagerBundle\Lib\grafica.php行10

我的班级格拉菲卡:

<?php
namespace Agc\ManagerBundle\Lib;

use Symfony\Component\DependencyInjection\ContainerInterface;
/**
 * @Route(service="srv_grafica")
 */
class grafica
{
    private $container, $conn, $bdnmgi;

    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
        $this->conn = $this->getConn();
        $this->bdnmgi = $this->getBd();
    }

    public function getConn(){
        return $this->container->get('database_connection');
    }
    public function getBd(){
        return $this->container->get('security.context')->getToken()->getUser()->getAdministracion()->getNombreEsquemamgi();
    }

\ManagerBundle\Resources\config\services。yml

services:
    srv_grafica:
        class: Agc\ManagerBundle\Lib\grafica
        arguments:
            - '@service_container'

我的默认控制器:

class DefaultController extends Controller
{
    public function dashboardAction(Request $peticion)
    {
        $em = $this->getDoctrine()->getManager('customer_1');
        $user= $this->get('security.context')->getToken()->getUser();
        $esquema = $user->getAdministracion()->getNombreEsquemamgi();
        var_dump($esquema);
        $grafica = new grafica();

共有2个答案

陶淳
2023-03-14

这是错误的:

$grafica = new grafica();

应该是:

$grafica = $this->get('srv_grafica');
公冶兴文
2023-03-14

您需要将容器传递给您的服务,下面是如何在services.yml中执行的示例

services:

    srv_grafica:
        class: Agc\ManagerBundle\Lib\grafica
        arguments:
            - '@service_container'
 类似资料:
  • 问题内容: 我想在页脚元素的右边放置文本(foo链接)。 我需要保留页脚显示。 但是当我将其设置为时,span不再起作用。 问题答案: 该属性在flex容器中被忽略。 根据flexbox规范: 3. Flex容器:和显示值 一个伸缩容器为其内容建立一个新的_伸缩格式上下文_。这与建立块格式化上下文相同,除了使用Flex布局而不是块布局。 例如,浮点数不会侵入flex容器,并且flex容器的边距不会

  • 在 CentOS VM 上安装最新的 OpenShift CodeReady 容器,然后在 OpenShift 上运行由 Java 编写的 TCP 服务器应用程序。TCP 服务器正在侦听端口 7777。 运行app,用NodePort将其公开为服务,看起来一切运行良好。pod端口是7777,服务端口是31777。 然后获取节点ip,命令显示为192.168.130.11,我可以在我的虚拟机上成功p

  • 问题内容: 我正在使用HtmlUnit 2.9(本月发布的稳定版本)。您是否知道以下代码为何不起作用? 我还要添加jstack的结果。注意,我标记了一个不断重复的部分: 我认为关于自动加载框架存在某种循环。如果是这样,是否有任何方法可以禁用该行为以打破循环? 提前致谢! 问题答案: 好吧,尽管这是一个可怕的解决方案(实际上,解决方法……),但我最终决定按照HtmlUnit的开发人员之一的建议,在H

  • 问题内容: 我有这个Docker Compose配置,我只需创建一个NodeJS容器并在其中安装Angular CLI。 之后,我可以使用SSH在容器内进行SSH 。可以正常工作,但似乎不起作用。它已正确启动,控制台中没有错误。但是,如果我访问(我将端口4200映射到80),则不会加载任何内容。 我想念什么吗? 问题答案: 在您的Dockerfile中,您缺少Expose行,例如: 尝试将其放在d

  • 我正在尝试用flex创建一个布局(将是一个音乐播放器)。 我有3个按钮(上一个、播放和下一个,用红色方块表示),我总是希望它们在同一条线上。 然后,我想在按钮右侧显示一些歌曲信息(当前时间、歌曲标题和总时间)。 我几乎总是希望总时间在最右边,歌曲标题填满剩余的宽度(使用),但随着窗口变小,用省略号截断。 有人知道如何调整它以使其正常工作吗? https://jsfiddle.net/13ohs7j

  • 我想在从Debian官方Docker中心仓库派生的docker容器中执行ps命令: