在配置我的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
答案 0 :(得分:-1)
似乎您使用的是psr-0型自动加载器,而不是psr-4。
您必须像下面那样编辑composer.json:
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
并将Controller目录直接移动到src
或
您可以将其设置为composer.json
{
"autoload": {
"psr-0": {
"App\\": ["src/"]
}
}
}