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

标签 symfony twig silex

我想知道如何获取当前页面名称,基本上“只是”路由中的最后一个参数(即/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/

相关文章:

serialization - 不要对用户角色 Symfony 使用序列化

php - 复合外键原则 Symfony 2 的重叠非主键

javascript - Font Awesome 图标下拉

php - 如何使用 symfony 2.3 在 WebTestCase 中提交无效的选择选项

php - Twig 模板 - 在数组中访问数组

javascript - 返回确认取消按钮不起作用

php - 在Silex中捕获自定义异常无法按预期工作

symfony - 从教义 2 中具有特定条件的自引用实体中检索子级

javascript - Twig 多个变量和 json_encode

url - 自定义错误页面中的 Silex 和 Twig 助手