你如何在 Twig 中获取当前的 url?
How do you get the current url in Twig?
在树枝模板中,我将检查
if url is: http://example.com/search?keyword=test
{% set pageTitle = query %} query is test
else
{% set pageTitle = different %}
我该怎么办?
谢谢。
Slim-Views 是你的朋友。通过作曲家安装它并添加 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(),
);
现在在您的模板中,您可以使用以下方式访问当前 url:
{% if currentUrl() == "http://" ~ domain ~ "/search?keyword=" ~ keyword %}
{% set pageTitle = query %}
{% else %}
{% set pageTitle = different %}
{% endif %}
要获得当前苗条 url 很简单,只需添加一个全局变量即可。
对于我的示例,我使用 PHP DI 和 Simple
$twig->getEnvironment()->addGlobal('currentUrl',$c->get('request')->getUri());
使用 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 文档中描述的方法。
在树枝模板中,我将检查
if url is: http://example.com/search?keyword=test
{% set pageTitle = query %} query is test
else
{% set pageTitle = different %}
我该怎么办?
谢谢。
Slim-Views 是你的朋友。通过作曲家安装它并添加 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(),
);
现在在您的模板中,您可以使用以下方式访问当前 url:
{% if currentUrl() == "http://" ~ domain ~ "/search?keyword=" ~ keyword %}
{% set pageTitle = query %}
{% else %}
{% set pageTitle = different %}
{% endif %}
要获得当前苗条 url 很简单,只需添加一个全局变量即可。 对于我的示例,我使用 PHP DI 和 Simple
$twig->getEnvironment()->addGlobal('currentUrl',$c->get('request')->getUri());
使用 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 文档中描述的方法。