我有一个助手来查看我当前的路线是什么,但这行总是给我一个“NULL”:
我检查控制台路由:debug和所有路由都是正确的。我的应用程序运行正常。
$currentRoute = $request->attributes->get('_route');
我的助手可以使用其他功能,我注入了容器。
有什么想法吗? 感谢。
答案 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();
}
}
两个控制器的我根据网址显示了projects
或default
。路由名称来自每个Bundle目录中的routing.yml
个文件。