Symfony“找不到路线”

时间:2017-05-09 15:21:50

标签: php symfony

我最近使用一个简单的控制器构建了一个新的symfony项目,用于读取.csv文件并将其内容输出到模板。 我使用控制台生成了包和控制器,并为控制器提供了“/ browse”路径。 当试图运行时,(127.0.0.1:8000/browse)它告诉我:“找不到”GET / browse“的路线。”

的src / OpiumBundle /控制器/ BrowseController.php

<?php

namespace OpiumBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class BrowseController extends Controller {

    /**
     * @Route("/browse")
     */
    public function indexAction() {
        $varPath = $this->get('kernel')->getRootDir().'/../var';
        return $this->render('OpiumBundle:Browse:index.html.php', array(
            // ...
        ));
    }

}

应用/配置/ routing.yml中

opium:
    resource: "@OpiumBundle/Resources/config/routing.yml"
    prefix: /

app:
    resource: '@AppBundle/Controller/'
    type: annotation

不幸的是我无法从我的debug:console发布输出,因为我的代表太低了。但是有两个空格,我猜他们不应该这样:

调试:路由器

opium_homepage             ANY      ANY      ANY    /                                  
homepage                   ANY      ANY      ANY    /

1 个答案:

答案 0 :(得分:2)

在生成捆绑包时使用yml选项时,将导致使用Bundle:Default:index bundle_homepage创建捆绑包routing.yml文件,并将配置文件包含为你的app routing.yml文件中的资源。

检查您的src/OpiumBundle/Resources/config/routing.yml文件并确保其显示为。

opium_bundle:
    resource: '@OpiumBundle/Controller/'
    type: annotation

或者编辑您的app/config/routing.yml文件以阅读

opium:
    resource: "@OpiumBundle/Controller/"
    prefix: /
    type: annotation

app:
    resource: '@AppBundle/Controller/'
    type: annotation

否则您将无法使用基于注释的路由,并且需要手动将路由添加到routing.yml配置文件中。

进行更改后清除缓存

php bin/console cache:clear

检查您的路线以确保包含browse

php bin/console debug:router

哪个应输出

opium_browse_index   ANY   ANY   ANY   /browse