您也可以直接在独立的导航树枝模板中生成导航列表。然后将其导入主模板。然后,您只需让 silex 将当前页面标识符传递给视图。最简单的方法...例如,从 Silex 您必须将“路径”变量传递给您的视图。从数据库中获取 nav_list 并将其作为全局数组变量传递给 twig 模板可能会更方便。然而,这个例子是你可以做的最简单的事情。
导航.twig
{% set nav_list = [
["./", "home"],
["./contact", "contact"],
["./about", "about us"]
{# ... #}
] %}
{% set link_active = path|default("") %}
{% for link in nav_list %}
<li><a href="{{ link[0] }}" class="{% if link[0] == link_active %} activeClass {% endif %}" >{{ link[1] }}</a></li>
{% endfor %}
应用程序.php
//...
$app->match('/about', function (Request $request) use ($app) {
return $app['twig']->render('about.twig', array(
'path' => './'.end(explode('/', $request->getRequestUri()))
));
});
//...