带有参数的 Symfony 5 自定义路由导致 404 错误

Symfony 5 custom route with param result in 404 error

我是 Symfony 5 的新手(我今天开始学习它)并且我正在学习有关 symfonycasts.com 的课程,我已经按照老师展示的做了所有事情,但我仍然得到 404我的控制器重定向错误,代码如下:

<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class QuestionController
{
    /**
     * @Route("/")
     */
    public function homepage()
    {
        return new Response('Homepage');
    }

    /**
     * @return Response
     * @Route("/q/{$param}")
     */
    public function showQuestions($param)
    {
        return new Response(sprintf("Hello %s!", $param));
    }
}

如您所见,这是一个非常简单的代码,但是当我转到 http://localhost 时,如果我更改

,我会得到 'Homepage'
    /**
     * @return Response
     * @Route("/q/{$param}")
     */
    public function showQuestions($param)
    {
        return new Response(sprintf("Hello %s!", $param));
    }

    /**
     * @return Response
     * @Route("/q")
     */
    public function showQuestions()
    {
        return new Response("Hello World");
    }

我 "Hello World" http://localhost/q 但是当我将 /{param} 添加到我的注释中时 http://localhost/q/Jean I have the Error page telling me that http://localhost/q/Jean 不存在。 我的 public 文件夹中有一个由

生成的 .htaccess 文件
composer req symfony:apache-pack

而且我还尝试清理 php 缓存并将开发 mod 更改为

php bin/console cache:clear --env=prod

但我仍然有错误。 我是 运行 我在 XAMPP 服务器上的 symfony 应用版本:XAMPP for Linux 7.4.1-1 在 ubuntu 18.04 和 Apache 2.4.29

我认为问题在于您在@Route 中使用了{$param} 而不是{param}。 参见 this