【问题标题】:Symfony 5 custom route with param result in 404 error带有参数的 Symfony 5 自定义路由导致 404 错误
【发布时间】:2020-05-22 23:32:30
【问题描述】:

我是 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 时,如果我更改了“主页”,则

    /**
     * @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");
    }

我在http://localhost/q 上有“Hello World” 但是,当我将 /{param} 添加到 http://localhost/q/Jean 之类的注释中时,我的错误页面告诉我 http://localhost/q/Jean 不存在。 我的公用文件夹中有一个 .htaccess 文件,由

生成
composer req symfony:apache-pack

我还尝试清理 php 缓存并更改开发模式

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

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

【问题讨论】:

  • 你会链接你正在关注的教程吗?另外,我怀疑美元符号是占位符的一部分,但我可能错了。

标签: php symfony routes symfony5


【解决方案1】:

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

【讨论】:

  • 这就是我的愚蠢,谢谢你这解决了问题
猜你喜欢
  • 1970-01-01
  • 2021-11-03
  • 2013-10-11
  • 2021-12-23
  • 2016-08-04
  • 1970-01-01
  • 2020-09-25
  • 2020-11-15
  • 1970-01-01
相关资源
最近更新 更多