为什么路线要求适用于我的第一条路线而不适用于我的第二条路线?

pander_alexander

我有这个问题:

我的第一条路线不允许我使用不是数字的任何字符(来自正则表达式),这非常有效(告诉我,如果您需要显示结果的屏幕)

但是第二个让我使用任何字符作为id,我不明白为什么,我尝试清除缓存(以及许多其他东西),但仍然允许我使用字母字符。

我目前有两条路线:

<?php
// src/Controller/AdvertController.php

namespace App\Controller;

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

/**
 * @Route("/advert")
 */
class AdvertController extends AbstractController
{
  /**
   * @Route("/{page}", name="oc_advert_index", requirements={"page" = "\d+"}, defaults={"page" = 1})
   */
  public function index(Environment $twig, $page)
  {
    $content = $twig->render('Advert/index.html.twig', ['page' => $page, 'name' => 'alex']);

    return new Response($content);
  }


  /**
   * @Route("/view/{id}", name="oc_advert_view", requirements={"id" = "\d+"})
   */
  public function view(Environment $twig, $id)
  {
    $content = $twig->render('Advert/view.html.twig', ['id' => $id, 'name' => 'alex']);

    return new Response($content);
  }
}

我的模板是基本的Twig模板(显示“ id”或“ page”),我试图寻找隐藏的空间和其他内容,但找不到区别(不包括名称“ id”和“ page”)

EDIT1:这是我执行时得到的php bin/console router/match /advert/view/abc


 [OK] Route "oc_advert_view" matches                                                                                    


+--------------+---------------------------------------------------------+
| Property     | Value                                                   |
+--------------+---------------------------------------------------------+
| Route Name   | oc_advert_view                                          |
| Path         | /advert/view/{id}                                       |
| Path Regex   | #^/advert/view/(?P<id>[^/]++)$#sDu                      |
| Host         | ANY                                                     |
| Host Regex   |                                                         |
| Scheme       | ANY                                                     |
| Method       | ANY                                                     |
| Requirements | NO CUSTOM                                               |
| Class        | Symfony\Component\Routing\Route                         |
| Defaults     | _controller: App\Controller\AdvertController::view      |
| Options      | compiler_class: Symfony\Component\Routing\RouteCompiler |
|              | utf8: true                                              |
+--------------+---------------------------------------------------------+

似乎由于某些原因未检测到/未使用“需求”,有人知道原因吗?

EDIT2:这是我做的时候得到的 php bin/console router:match /advert/123


 [OK] Route "oc_advert_index" matches                                           


+--------------+---------------------------------------------------------+
| Property     | Value                                                   |
+--------------+---------------------------------------------------------+
| Route Name   | oc_advert_index                                         |
| Path         | /advert/{page}                                          |
| Path Regex   | #^/advert(?:/(?P<page>\d+))?$#sDu                       |
| Host         | ANY                                                     |
| Host Regex   |                                                         |
| Scheme       | ANY                                                     |
| Method       | ANY                                                     |
| Requirements | page: \d+                                               |
| Class        | Symfony\Component\Routing\Route                         |
| Defaults     | _controller: App\Controller\AdvertController::index     |
|              | page: 1                                                 |
| Options      | compiler_class: Symfony\Component\Routing\RouteCompiler |
|              | utf8: true                                              |
+--------------+---------------------------------------------------------+

在这里我们可以看到它检测到了正则表达式,感觉这是一个错字错误,但是我至少复制/粘贴了3次,非常奇怪:/


最后编辑:谢谢所有试图找到问题的人,我学到了一些东西,所以我非常感激(对您的时间浪费^^)

pander_alexander

解决:在config / routes.yaml和我的路由之间存在冲突,我必须删除重复的路由。(我遵循的课程是,首先在config / routes.yaml中声明它,然后在带有注释的情况下声明路由,而忘记了删除config / routes.yaml内容的步骤)

谢谢所有试图找到问题的人,我学到了一些东西,所以我非常感激(很抱歉浪费时间^^)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当用户在 Vue 和 Vuex 中从第一条路线到第二条路线和第二条路线到第一条路线时,想要在第一条路线上运行功能

来自分类Dev

铁路由器仅适用于一条路线

来自分类Dev

我正在遍历数据库,但我的div模型仅适用于第一条记录,不适用于其他记录

来自分类Dev

为什么只有我的第二条if语句给出结果并覆盖我的第一条if语句?

来自分类Dev

滑行不适用于我

来自分类Dev

如何订阅第一条路线

来自分类Dev

为什么我的CSS样式表不适用于我的HTML文档?

来自分类Dev

为什么我的CSS样式表不适用于我的HTML文档?

来自分类Dev

为什么我的 CSS 不适用于我的所有 EJS 循环?

来自分类Dev

我的where子句不适用于我的结果

来自分类Dev

为什么顶部填充不适用于我的锚点?

来自分类Dev

为什么PyCharm的自动完成功能不适用于我安装的库?

来自分类Dev

为什么Xcode的错误检查不适用于我的测试文件夹?

来自分类Dev

为什么身份验证不适用于我的ASP.NET REST API?

来自分类Dev

为什么数据绑定不适用于我的自定义属性指令

来自分类Dev

为什么网络策略入口不适用于我的情况

来自分类Dev

为什么顶部填充不适用于我的锚点?

来自分类Dev

为什么 uglify 不适用于我在 gulp 中的 javascript 文件

来自分类Dev

为什么 Addon XLSX 不适用于我系统中的以下代码?

来自分类Dev

路线映射不适用于“区域”

来自分类Dev

路线映射不适用于“区域”

来自分类Dev

我可以将一条路线用于多种功能吗?

来自分类Dev

Laravel with() 仅适用于第一条记录(仅适用于 ID 为 1 的记录)

来自分类Dev

stringify不适用于我的javascript数组

来自分类Dev

删除链接不适用于我的模型

来自分类Dev

输入重定向不适用于我的程序

来自分类Dev

jQuery滚动不适用于我的网站

来自分类Dev

Gradle exec commandLine不适用于我

来自分类Dev

阵列反向不适用于我...

Related 相关文章

  1. 1

    当用户在 Vue 和 Vuex 中从第一条路线到第二条路线和第二条路线到第一条路线时,想要在第一条路线上运行功能

  2. 2

    铁路由器仅适用于一条路线

  3. 3

    我正在遍历数据库,但我的div模型仅适用于第一条记录,不适用于其他记录

  4. 4

    为什么只有我的第二条if语句给出结果并覆盖我的第一条if语句?

  5. 5

    滑行不适用于我

  6. 6

    如何订阅第一条路线

  7. 7

    为什么我的CSS样式表不适用于我的HTML文档?

  8. 8

    为什么我的CSS样式表不适用于我的HTML文档?

  9. 9

    为什么我的 CSS 不适用于我的所有 EJS 循环?

  10. 10

    我的where子句不适用于我的结果

  11. 11

    为什么顶部填充不适用于我的锚点?

  12. 12

    为什么PyCharm的自动完成功能不适用于我安装的库?

  13. 13

    为什么Xcode的错误检查不适用于我的测试文件夹?

  14. 14

    为什么身份验证不适用于我的ASP.NET REST API?

  15. 15

    为什么数据绑定不适用于我的自定义属性指令

  16. 16

    为什么网络策略入口不适用于我的情况

  17. 17

    为什么顶部填充不适用于我的锚点?

  18. 18

    为什么 uglify 不适用于我在 gulp 中的 javascript 文件

  19. 19

    为什么 Addon XLSX 不适用于我系统中的以下代码?

  20. 20

    路线映射不适用于“区域”

  21. 21

    路线映射不适用于“区域”

  22. 22

    我可以将一条路线用于多种功能吗?

  23. 23

    Laravel with() 仅适用于第一条记录(仅适用于 ID 为 1 的记录)

  24. 24

    stringify不适用于我的javascript数组

  25. 25

    删除链接不适用于我的模型

  26. 26

    输入重定向不适用于我的程序

  27. 27

    jQuery滚动不适用于我的网站

  28. 28

    Gradle exec commandLine不适用于我

  29. 29

    阵列反向不适用于我...

热门标签

归档