无法在Symfony 5中创建控制器:应找到类

ubof19bj  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(130)

我指定我不是Symfony的初学者。这不是关于创建控制器,而是当我尝试创建控制器时遇到的错误。我还指定它是关于一个已经存在的网站,其中包括大约10个控制器。
为了创建一个控制器,我尝试了几种方法:

  • 手动从零开始创建控制器
  • 复制粘贴现有控制器
  • 用命令行通过方法:symfony console make:controller NomController

无论如何,我得到了以下错误:
从资源“../src/"导入服务时,应在文件“C:\wamp64\www\dev\nom-site\src\Controller\NomController.php”中找到类“App\Controller\NomController”,但未找到!请检查C:\wamp64\www\dev\nom-site\src\Kernel.php中与资源一起使用的命名空间前缀(从“C:\wamp64\www\dev\nom-site\src\Kernel.php”导入)。
显然,NomController类存在于NomController.php文件中,并且:

  • 这里没有语法错误,因为我已经尝试过使用一个空的和几乎空的类。
  • 我清除了var > cache中的缓存

下面是services.yaml文件:

services:

    _defaults:
        autowire: true      
        autoconfigure: true 

    App\:
        resource: '../src/'
        exclude:
            - '../src/DependencyInjection/'
            - '../src/Entity/'
            - '../src/Kernel.php'
            - '../src/Tests/'

我测试添加一个新的

  • 服务在src\Service\TestService.php中。
  • 输入src\Form\Type\TestType. php

我有完全相同的错误。事实上,这不是一个特定于控制器的问题。它可以是一个修改,以便symfony在缓存中保留所有的PHP类(性能增益)。

6yt4nkrj

6yt4nkrj1#

有多种原因可能导致此问题。

1.检查您的类名和命名空间(区分大小写)

在本例中,类名必须为NomController,命名空间为App\Controller\NomController,并且位于src/Controller/NomController

2.检查语法错误

奇怪的是,这个错误可能会因为其他原因而弹出,比如缺少冒号;

3.查看composer.json中的自动加载配置

使用symfony默认配置,它应该看起来像这样:

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

然后可以运行composer dump-autoload来手动生成vendor/autoload.php文件(供index.php使用)。

相关问题