我最近使用一个简单的控制器构建了一个新的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 /
答案 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