1

我在 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

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

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

但是当我尝试

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

它没有找到路线错误

我在这里做错了什么?

请问有什么想法吗?

4

2 回答 2

1

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

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

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

希望它会有所帮助

于 2012-05-20T13:25:44.793 回答
0

我认为您的代码路由是正确的。但输入的网址不正确。您没有web指向app_dev.php. 可能这是你的问题。

而不是这个网址 http://project.dev/app_dev.php/portfolio试试下面的网址

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

希望project.dev是您的项目文件夹。

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

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

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

希望这可以帮助。

于 2012-05-20T11:02:14.083 回答