首页 文章

Symfony 2:生成的包不会找到路由

提问于
浏览
0

据我所知,symfony建议使用默认的AppBundle(如本页http://symfony.com/doc/current/best_practices/creating-the-project.html所述),但由于我的项目由多个独立的应用程序组成,我想将它们分成自己的捆绑包 .

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

我得到的例外:

request.ERROR:未捕获的PHP异常Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException:“在C:\ wamp \ www \ symfony \ test \ app \ cache \ prod \ classes中找不到”GET / hello / somename“”的路由 . php line 2480 {“exception”:“[object](Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException(code:0):在C:\ wamp \ www \ symfony中找不到\”GET / hello / somename \“的路由\ test \ app \ cache \ prod \ classes.php:2480,Symfony \ Component \ Routing \ Exception \ ResourceNotFoundException(code:0):at 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应该可以解决问题,但它不起作用 .

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

附: 2我知道这是一个很受欢迎的问题,但到目前为止我找到的答案似乎并没有帮助我解决这个问题 .

附: 3默认的AppBundle使用类似的设置正常工作(但注释代替)

1 回答

  • 1

    调试消息表明您处于prod环境中 .

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

相关问题