在树枝模板中,我会检查
if url is: http://example.com/search?keyword=test
{% set pageTitle = query %} query is test
else
{% set pageTitle = different %}
我该怎么做?
谢谢。
答案 0 :(得分:3)
使用Slim v3.8,您可以使用以下代码公开 {{current_path}} 变量中的路径:
$container["view"] = function ($container) use ($menu) {
$view = new \Slim\Views\Twig("../templates");
$basePath = rtrim(str_ireplace("index.php", "", $container["request"]->getUri()->getBasePath()), "/");
$view->addExtension(new Slim\Views\TwigExtension($container["router"], $basePath));
$view->getEnvironment()->addGlobal("current_path", $container["request"]->getUri()->getPath());
$view->getEnvironment()->addGlobal("menu", $menu);
return $view;
};
这遵循Templates文档中描述的方法。
答案 1 :(得分:2)
要获取当前的slim url很简单,只需添加一个全局变量即可。 对于我的例子,我使用PHP DI和Simple
$twig->getEnvironment()->addGlobal('currentUrl',$c->get('request')->getUri());
答案 2 :(得分:0)
Slim-Views是你的朋友。通过composer安装并添加 TwigExtension 。
<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim(array(
'view' => new \Slim\Views\Twig()
));
$view = $app->view();
$view->parserExtensions = array(
new \Slim\Views\TwigExtension(),
);
现在,在您的模板中,您可以使用以下方式访问当前网址:
{% if currentUrl() == "http://" ~ domain ~ "/search?keyword=" ~ keyword %}
{% set pageTitle = query %}
{% else %}
{% set pageTitle = different %}
{% endif %}