需要在模板中获取URL。
我尝试使用get.request.url,但始终返回空白。我尝试过get.request.attributes.get('_ route'),它总是返回空白。由于我是树枝的新手,因此我确定我缺少一些基本且简单的内容。
答案 0 :(得分:0)
在独立使用twig
时,您需要自己传递信息。不过,您可以创建一个小型包装器类来解决这个问题。
Request.php
class Request {
public function __construct() {}
public function get($key) {
return isset($_GET[$key]) ? $_GET[$key] : null;
}
public function post($key) {
return isset($_POST[$key]) ? $_POST[$key] : null;
}
public function url() {
$http = 'http'.(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 's': '');
return $http.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
}
并将该类作为全局类注册到twig
中:
<?php
require_once __DIR__.'/vendor/autoload.php';
$loader = new Twig_Loader_Filesystem(__DIR__.'/../views');
$twig = new Twig_Environment($loader);
$twig->addGlobal('request', new Request());
现在您可以在twig
内使用包装器了
{{ request.url }}{# output current url #}
{{ request.get('variable') }}{# contents of $_GET['variable'] when set or null #}
{{ request.post('variable') }}{# contents of $_POST['variable'] when set or null #}