2015-06-21 47 views
0

据我所知,symfony建议使用默认AppBundle(如本页http://symfony.com/doc/current/best_practices/creating-the-project.html所述),但是因为我的项目是由一些独立的应用程序组成,所以我想把它们分成自己的包。Symfony 2:生成的包不会找到路由

我想在symfony2控制台的帮助下生成一个bundle生成:bundle命令。目录结构似乎全部到位,但我经常会收到一条错误消息,说明路由未定义,尽管我已经定义了它。

的例外,我得到:

request.ERROR:未捕获的PHP异常的Symfony \分量\ HttpKernel \异常\ NotFoundHttpException:GET /你好/ somename “ ”在C“ 未找到路线”:\ WAMP \ WWW \ symfony \ test \ app \ cache \ prod \ classes.php line 2480 {“exception”:“[object](Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException(code:0):No route found for \”GET/hello/somename \“在C:\ wamp \ www \ symfony \ test \ app \ cache \ prod \ classes.php:2480,Symfony \ Component \ Routing \ Exception \ ResourceNotFoundException(代码:0):在C:\ wamp \ www \ symfony \ test \ app \ cache \ prod \ appProdUrlMatcher.php:35)“} []

这里是设置:

的routing.yml:

my: 
    resource: "@MyBundle/Resources/config/routing.php" 
    prefix: /
app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 

routing.php:

use Symfony\Component\Routing\RouteCollection; 
use Symfony\Component\Routing\Route; 

$collection = new RouteCollection(); 

$collection->add('my_homepage', new Route('/hello/{name}', array(
    '_controller' => 'MyBundle:Default:index', 
))); 

return $collection; 

MyBundle /控制器/ DefaultController.php

namespace MyBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class DefaultController extends Controller 
{ 
    public function indexAction($name) 
    { 
     return $this->render('MyBundle:Default:index.html.twig', array('name' => $name)); 
    } 
} 

束也被适当地在AppKernel类注册。

据我所知,调用mydomain.local/hello/somename应该做的伎俩,但它不会工作。

P.S.我也尝试了注释方法,但它也不会工作(我得到相同的结果)

P.S. 2我知道这是一个非常有问题的问题,但迄今为止我找到的答案中没有一个能够帮助我解决这个问题。

P.S. 3默认AppBundle工作正常,使用类似的设置(但注释代替)

回答

1

调试消息说你是prod环境。

您是否尝试过从开发环境访问您的路线:mydomain.local/app_dev.php/hello/somename或清除缓存?

+1

太好了。这工作。没有想到清除缓存(老实说,它并没有引起我的注意,它正在使用prod环境,刚刚从SF开始......)。有关如何配置正确环境的任何快速提示?谢谢。 – mspir

+0

标准版中的基本环境配置几乎适用于所有基本用例。通常,我只为单元和功能测试创建一个自定义测试环境。 – jobou