【问题标题】:No route found for "GET /portfolio未找到“GET /portfolio”的路线
【发布时间】:2012-09-21 03:31:35
【问题描述】:

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

没有找到路由错误

我在这里做错了什么?

有什么想法吗?

【问题讨论】:

  • 你运行路由调试器了吗?运行php app/console router:debug --env=dev 有什么收获?
  • 我将您的代码复制到了一个新的 symfony2 项目中,它适用,唯一的区别是两个 routing.yaml 文件的 yaml 配置格式。意图正确吗?
  • 感谢您的回复,这只是因为 Eclipse IDE,更改仅发生在 IDE 的工作区中,而不是在我的项目根目录中。我开始使用我最喜欢的 IDE 的 Netbeans :)
  • 修正缩进。 Yaml 对这件事非常敏感。
  • hai....你把树枝的名字写成index.twig还是index.html.twig??/

标签: php symfony


【解决方案1】:

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

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

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

希望对你有帮助

【讨论】:

    【解决方案2】:

    我认为您的代码路由是正确的。但输入的网址不正确。您没有指向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
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-04-29
      • 2013-06-12
      • 1970-01-01
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      相关资源
      最近更新 更多