找不到“GET / portfolio”的路线

时间:2012-05-18 14:46:59

标签: php symfony

我在symfony2中创建了一个非常基本的静态页面,但是我没有找到路由发现错误,我已经为我的页面定义了路由。

我的控制器

#src/IDP/IDPBundle/Controller/PortfolioController.php
<?php
  namespace IDP\IDPBundle\Controller;
  use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  class PortfolioController extends Controller
  {
   public function indexAction()
   {
    return $this->render('IDPIDPBundle:Portfolio:index.twig');
   }
  }

我的routing.yml文件

#src/IDP/IDPBundle/resources/config/routing.yml
IDPIDPBundle_portfolio:
pattern:  /portfolio
defaults: { _controller: IDPIDPBundle:Portfolio:index }
requirements:
    _method:  GET

我在应用中的路由文件

#app/config/routing.yml
IDPIDPBundle:
resource: "@IDPIDPBundle/Resources/config/routing.yml"
prefix:   /

# Internal routing configuration to handle ESI
#_internal:
#   resource: "@FrameworkBundle/Resources/config/routing/internal.xml"
#   prefix:   /_internal

当我在浏览器中尝试这个网址时,symfony欢迎页面会出现

 http://project.dev/app_dev.php/

但是当我尝试

http://project.dev/app_dev.php/portfolio

它没有找到路由发现错误

我在这里做错了什么?

请问任何想法?

2 个答案:

答案 0 :(得分:1)

确保您所做的更改不仅在eclipse的工作空间中受到项目根目录的影响。将您的eclipse工作空间更改为项目根目录,然后

IDPIDPBundle:
 resource: "@IDPIDPBundle/Resources/config/routing.yml"
 prefix:   /

IDPIDPBundle_portfolio:
 pattern:  /portfolio
 defaults: { _controller: IDPIDPBundle:Portfolio:index }
 requirements:
 _method:  GET

希望它会有所帮助

答案 1 :(得分:0)

我认为你的代码路由是正确的。但输入的网址不正确。您没有指向web的{​​{1}}文件夹。可能这是你的问题。

而不是此网址http://project.dev/app_dev.php/portfolio尝试以下网址

app_dev.php

希望 http://project.dev/web/app_dev.php/portfolio 是您的项目文件夹。

第二件事我注意到你必须真正关心routing.yml文件的缩进。

project.dev

希望这有帮助。