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

对成员函数的调用具有()null symfony2

酆乐湛
2023-03-14

我有5个类别Categoria、Produto、Subcategoria、submoduto和Comanda,对于所有类别中的执行搜索,我尝试提供如下服务:

namespace AppBundle\Controller;


use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class AccessClassController extends Controller{

    /**
     * Retorna todas as categorias ativas
     */
    public function CategoriasAtivasAction()
    {
        $em = $this->getDoctrine()->getManager();

        $categorias = $em->getRepository('AppBundle:Categoria')->findByAtivo(1);

        return $categorias;
    }
}
 

我尝试访问ComandaController上的服务

class ComandaController extends Controller
{
...
public function newAction(Request $request, $id)
    {
        $comanda = new Comanda();

        $categorias = $this->get('categorias.ativas')->CategoriasAtivasAction();
...

然后symfony返回错误

调用成员函数有()在空500内部服务器错误-FatalThrowableError

我services.yml有


services:
  categorias.ativas:
     class: AppBundle\Controller\AccessClassController

怎么了?

共有1个答案

宋运锋
2023-03-14

根据Symfony留档,Symfony不推荐将控制器定义为服务。即使你需要使用,你也可以做到。根据您的代码,您没有在服务中传递服务容器对象。请做以下更改并尝试。

为您效劳。yml文件

services:
   categorias.ativas:
      class: AppBundle\Controller\AccessClassController
      arguments: ["@service_container"]

在AccessClassController文件中

namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class AccessClassController extends Controller{

  /**
  * Retorna todas as categorias ativas
  */
  public function CategoriasAtivasAction()
  {
    $em = $this->container->get('doctrine')->getManager();

    $categorias = $em->getRepository('AppBundle:Categoria')->findByAtivo(1);

    return $categorias;
  }
}
 类似资料:
  • 我有一个密码: 我正在尝试使用toSql()将laravel查询转换为mysql 但我犯了一个错误,比如 对整数调用成员函数toSql() 然后我尝试了 但它返回的输出为'false',我无法得到预期的输出。我不知道为什么会发生这种情况。任何帮助都将不胜感激。 预期产出:

  • 问题内容: 因此,我正在重构代码以实现更多的OOP。我设置了一个类来保存页面属性。 稍后,我像这样调用set_page_title()函数 当我收到错误消息时: 调用非对象上的成员函数set_page_title() 那我想念什么呢? 问题答案: 这意味着它不是对象的实例。我们可以看到您用来初始化变量的代码吗? 当您期望特定的对象类型时,还可以使用PHP的类型提示功能 Docs 在违反逻辑时得到错

  • 本文向大家介绍浅析成员函数和常成员函数的调用,包括了浅析成员函数和常成员函数的调用的使用技巧和注意事项,需要的朋友参考一下 在Coordinate类中,有一个Display()成员函数和一个Display() const常成员函数,代码如下 Display()成员函数和一个Display() const常成员函数是互为重载的,那么如果我们直接像下面这样调用该方法,会调用的是哪个呢? 那么运行下程序

  • 问题内容: 我的查询有问题。我最近改用了PDO,这对我来说是新的。现在,我需要在查询中使用JOIN来从另一个表中获取数据,而无需执行两次执行。 问题是,我收到此错误: 我不明白问题是什么。这是我的代码的样子: 或简称为查询: 我想要的是,从用户ID为session且请求为0的朋友那里获取所有行。但是然后我想获取用户中那些朋友的ID,以便我可以链接到他们的个人资料。注意 感谢您提供任何反馈意见,不必

  • 我试图为我在Github上的一个项目创建一个新的虚拟开发环境。我已经安装了MariaDB,PHP 7,做了一个本地克隆的存储库,并恢复了它的. env文件。它应该起作用了。 不幸的是,当我键入php artisan和作曲家更新,我收到以下错误: PHP致命错误:未捕获错误:调用成员函数连接()在src/供应商/laravel/框架/src/照明/数据库/雄辩/Model.php:1058 堆栈跟踪

  • 请帮帮我 致命错误:在第104行的/home/u357965800/public_html/include/class.admin.php中对非对象调用成员函数prepare()