0

当我尝试访问我的app_dev.php页面时出现以下错误:

No route found for "GET /"

问题是我定义了这条路线,我的 routing.yml 文件如下所示:

 0 v42homepage:
 1     pattern:  /
 2     defaults: { _controller: v42Bundle:Default:index }
 3
 4 v42meetTheTeamPage:
 5     pattern:  /meetTheTeam
 6     defaults: { _controller: v42Bundle:Default:meetTheTeam }
 7
 8 v42whatWeDoPage:
 9     pattern:  /whatWeDo
10     defaults: { _controller: v42Bundle:Default:whatWeDo }
11
12 v42contactUsPage:
13     pattern:  /contactUs
14     defaults: { _controller: v42Bundle:Default:contactUs }
15
16 v42homepage:
17     pattern:  /login
18     defaults: { _controller: v42Bundle:Default:login }

这是我的控制器:

<?php
 47
 46 namespace v42\WebsiteBundle\Controller;
 45
 44 use Symfony\Bundle\FrameworkBundle\Controller\Controller;
 43
 42 class DefaultController extends Controller
 41 {
 40     public function indexAction()
 39     {
 38         $templating = $this->container->get('templating');
 37
 36         $response = $templating->renderResponse('v42Bundle:Default:index.html.twig');
 35
 34         return $response;
 33     }
 32
 31     public function meetTheTeamAction()
 30     {
 29         $templating = $this->container->get('templating');
 28
 27         $response = $templating->renderResponse('v42Bundle:Default:meetTheTeam.html.twig');
 26
 25         return $response;
 24     }
 23
 22     public function whatWeDoAction()
 21     {
 20         $templating = $this->container->get('templating');
 19
 18         $response = $templating->renderResponse('v42Bundle:Default:whatWeDo.html.twig');
 17
 16         return $response;
 15     }
 14
 13     public function contactUsAction()
 12     {
 11         $templating = $this->container->get('templating');
 10
  9         $response = $templating->renderResponse('v42Bundle:Default:contactUs.html.twig');
  8
  7         return $response;
  6     }
  5
  4     public function loginAction()
  3     {
  2         $templating = $this->container->get('templating');
  1
  0         $response = $templating->renderResponse('v42Bundle:Default:login.html.twig');
  1
  2         return $response;
  3     }
  4
  5 }

我的所有其他路径都可以工作,但是在不提供路径的情况下访问 app_dev.php 不会,即使默认情况下这应该解析为我的 / 路径。什么可能导致这种情况?

我已经尝试使用 Symfony 的控制台程序清除我的缓存,如此所述。

谢谢

4

1 回答 1

2

被调用pattern的现在path在路由配置中被调用。旧密钥pattern已弃用,将在 Symfony 3.0 中删除。

参考这里

如果您对开发环境使用不同的路由,即 routing_dev.yml:

config_dev.yml

framework:
    router:   { resource: "%kernel.root_dir%/config/routing_dev.yml" }

您必须在 routing_dev.yml 中导入生产路线

routing_dev.yml

# ... dev routes here ... i.e. _wdt, _profiler

_main:
    resource: routing.yml

此外,请确保您没有覆盖/routing_dev.yml 中的路由。

第一个匹配的路由模式总是获胜 -在 routing_dev.yml 中导入 routing.yml之前的路由将被覆盖。

但是......使用相同的路由名称会覆盖之前声明的那些。

您可以检查应用程序中存在哪些路由

app/console router:debug

app/console router:debug --env=prod

这里的问题:重复的路线名称

v42homepage:
    pattern:  /

v42homepage:
    pattern:  /login

解决方案

将第二个 v42homepage 重命名为 ie v42login 以解决问题。

于 2013-06-16T17:48:16.007 回答