我想知道如何获取当前页面名称,基本上“只是”路由中的最后一个参数(即/news 或/about)。我这样做是因为我希望能够突出显示导航中的当前页面。
理想情况下,我想将当前页面名称存储在全局变量中,以便在 Twig 中我可以将当前页面名称与链接进行比较并相应地添加一个类。
我不知道如何将当前页面名称添加到全局变量中。我尝试过使用这样的东西:
$app['twig']->addGlobal('current_page_name', $app['request']->getRequestUri());
在我的 app.php 文件顶部,但出现“超出请求范围”错误。但我不想在每条 route 都包含它。
最好的方法是什么?
最佳答案
如果您将其放入像这样的中间件之前的应用程序级别,那就可以了:
$app->before(function (Request $request) use ($app) {
$app['twig']->addGlobal('current_page_name', $request->getRequestUri());
});
您的问题的“页面名称”部分不清楚,您是在查找当前路线的名称吗?即使在之前的中间件中,您也可以通过 $request->get("_route")
访问它,因为当路由已经完成时它会被调用。
关于symfony - 如何在 Silex 中获取当前页面名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14407377/