如何在Silex中获取当前页面名称

Pet*_*ete 5 symfony twig silex

我想知道如何获取当前页面名称,基本上"只是"路由中的最后一个参数(即/ news或/ about).我这样做是因为我希望能够突出显示导航中的当前页面.

理想情况下,我想将当前页面名称存储在全局变量中,以便在Twig中我可以将当​​前页面名称与链接进行比较并相应地添加一个类.

我无法弄清楚如何将当前页面名称添加到全局变量.我尝试过使用这样的东西:

$app['twig']->addGlobal('current_page_name', $app['request']->getRequestUri());
Run Code Online (Sandbox Code Playgroud)

在我的app.php文件的顶部,但是"请求范围之外"错误.但我不想在每条路线中都包括这一点.

最好的方法是什么?

Mae*_*lyn 16

如果你在像这样的中间件之前把它放到应用程序级别,那就行了:

$app->before(function (Request $request) use ($app) {
    $app['twig']->addGlobal('current_page_name', $request->getRequestUri());
});
Run Code Online (Sandbox Code Playgroud)

您的问题的"页面名称"部分不清楚,您是否在寻找当前路线的名称?您$request->get("_route")甚至可以在之前的中间件中访问它,因为在路由已经完成时会调用它.