令人困惑的类加载异常Symfony 4

时间:2020-05-07 12:52:53

标签: symfony4

在配置我的symfony应用程序期间,我遇到了有关控制器的错误命名空间的错误,但是我确定该文件存在于错误消息中显示的路径中,并且我的配置似乎是正确的

从资源“ ../src/App/*”导入服务时,预期在文件“ /var/www/html/src/App/Controller/AccountController.php”中找到类“ App \ Controller \ AccountController”,但是没有找到!在/var/www/html/config/services.yaml(在资源“ /var/www/html/config/services.yaml”中加载)中检查与资源一起使用的名称空间前缀。

/var/www/html/config/services.yaml文件

Exam.php
public function getAllTags()
{
   return $this->with(['questions.tags'=> function($query){
     $query->select('..');
   }])->get();
}
// This will just give you what you need 

composer.json

services:
    _defaults:
        autowire: true
        autoconfigure: true

    App\:
        resource: '../src/App/*'
        exclude: '../src/App/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'

    App\Controller\:
        resource: '../src/App/Controller'
        tags: ['controller.service_arguments']

文件夹结构

"autoload": {
        "psr-4": {
            "App\\": "src/App/",
            "": "src/"
        }
    }

控制器名称空间

/src: /App: /Controller: AccountController.php

1 个答案:

答案 0 :(得分:-1)

似乎您使用的是psr-0型自动加载器,而不是psr-4。

您必须像下面那样编辑composer.json:

{
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

并将Controller目录直接移动到src

您可以将其设置为composer.json

{
    "autoload": {
        "psr-0": {
            "App\\": ["src/"]
        }
    }
}
相关问题