无法生成路线

时间:2014-07-01 08:40:03

标签: php symfony routes

我有一个助手来查看我当前的路线是什么,但这行总是给我一个“NULL”:

我检查控制台路由:debug和所有路由都是正确的。我的应用程序运行正常。

$currentRoute = $request->attributes->get('_route');

我的助手可以使用其他功能,我注入了容器。

有什么想法吗? 感谢。

1 个答案:

答案 0 :(得分:1)

我希望它会对你有所帮助,因为我不是Symfony2专家 - 我告诉你它是如何运作的。

在我的Symfony2项目中,我有这样定义的路由:

<强>的routing.yml

mnab_contact:
    resource: "@MnabContactBundle/Resources/config/routing.yml"
    prefix:   /

mnab_projects:
    resource: "@MnabProjectsBundle/Resources/config/routing.yml"
    prefix:   /

mnab_article:
    resource: "@MnabArticleBundle/Resources/config/routing.yml"
    prefix:   /

例如,对于我的ArticleBundle,我的routing.yml文件是:

default:
    pattern:  /{anything}
    defaults: { _controller: MnabArticleBundle:Default:index , anything: null}
    requirements:
      anything: .*

所以你看我也使用参数。

对于我的项目,我有routing.yml:

projects:
    pattern:  /projects/{anything}
    defaults: { _controller: MnabProjectsBundle:Default:index, anything: ''}
    requirements:
      anything: .*

在两个控制器中我都有这样的代码:

<?php

namespace Mnab\ArticleBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use Symfony\Component\HttpFoundation\Request;

use \Symfony\Component\HttpFoundation\Response;
use \Symfony\Component\HttpFoundation\JsonResponse;


use \Mnab\Symfony\BaseController;

use \Mnab\DB\DbInterface;


class DefaultController extends BaseController
{
    public function indexAction(Request $request, $anything)
    {

        echo $request->attributes->get('_route');
        die();

    }
}
两个控制器的

我根据网址显示了projectsdefault。路由名称来自每个Bundle目录中的routing.yml个文件。