Symfony“未找到路线”

Ale*_*epe 2 php symfony

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

src/OpiumBundle/Controller/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(
            // ...
        ));
    }

}
Run Code Online (Sandbox Code Playgroud)

应用程序/配置/routing.yml

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

app:
    resource: '@AppBundle/Controller/'
    type: annotation
Run Code Online (Sandbox Code Playgroud)

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

调试:路由器

opium_homepage             ANY      ANY      ANY    /                                  
homepage                   ANY      ANY      ANY    /
Run Code Online (Sandbox Code Playgroud)

fyr*_*rye 5

yml生成包时使用该选项时,将导致使用Bundle:Default:indexof来创建包 routing.yml 文件bundle_homepage,并将配置文件作为资源包含在您的应用程序 routing.yml 文件中。

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

opium_bundle:
    resource: '@OpiumBundle/Controller/'
    type: annotation
Run Code Online (Sandbox Code Playgroud)

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

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

app:
    resource: '@AppBundle/Controller/'
    type: annotation
Run Code Online (Sandbox Code Playgroud)

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

进行更改后清除缓存

php bin/console cache:clear
Run Code Online (Sandbox Code Playgroud)

检查您的路线以确保browse包括在内

php bin/console debug:router
Run Code Online (Sandbox Code Playgroud)

哪个应该输出

opium_browse_index   ANY   ANY   ANY   /browse
Run Code Online (Sandbox Code Playgroud)