【问题标题】:Class "1\HomeController" does not exist类“1\HomeController”不存在
【发布时间】:2021-05-05 02:00:44
【问题描述】:

我正在从 Scrach Symfony 学习 5.0.1 版本。 我使用 --full 选项创建了一个项目。 Annotations 包已经安装。

这是我的错误:

C:\wamp64\www\crowdin\group-834932\crowdin\config/routes../../src/Controller/ 中不存在类“1\HomeController”(从“C: \wamp64\www\crowdin\group-834932\crowdin\config/routes/annotations.yaml")。确保已安装并启用注释。

这是我的 HomeController(由制造商制作):

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class HomeController extends AbstractController
{
    /**
     * @Route("/home", name="home")
     */
    public function index(): Response
    {
        return new Response('<h1>Home Page</h1>');
    }
}

以及 annotations.yaml 文件:

controllers:
    resource: ../../src/Controller/
    type: annotation

kernel:
    resource: ../../src/Kernel.php
    type: annotation

为什么它不起作用?我安装了所有需要的软件包。我很好地遵循了配置过程。 你能帮帮我吗?

【问题讨论】:

  • 类“1\HomeController”?那个1是从哪里来的?也许你的控制器文件中有一个控制代码?
  • 由于某种原因,您在C:\wamp64\www\crowdin\group-834932\crowdin\config/routes../../src/Controller/ 中似乎缺少/,应该类似于/routes/..
  • 您可以尝试清除缓存吗? rm -rf var/cache/*

标签: symfony symfony5 symfony-routing


【解决方案1】:

很遗憾,您没有指定使用的 PHP 版本。

看起来它可能与 symfony/http-kernel 有关(参见 src/Kernel.php)。

我已经设法使用 Symfony 5.0 复制相同的问题,并将 PHP 从 7.3 升级到 8.0,然后运行 ​​composer update。在这种情况下,我遇到了同样的错误,并且配置中似乎没有任何东西能够修复它。

将 PHP 切换回 7.3 并重新运行 composer update 可以修复它。 也使用 PHP 8.0,但将 Symfony 升级到 5.2 可以修复它(没有尝试过 5.1)。

【讨论】:

  • 我用 Symfony 4.3 解决了这个问题 - 我通过升级到 4.4 并删除 composer.lock 然后运行 ​​composer install 来修复它
  • 它对我有帮助
猜你喜欢
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 2019-10-30
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 2016-12-25
相关资源
最近更新 更多