Получить URL в ветке - PullRequest
       4

Получить URL в ветке

0 голосов
/ 16 апреля 2019

Нужно получить URL в шаблоне.

Я пытался использовать get.request.url, и он всегда возвращает пустое значение. Я пробовал get.request.attributes.get ('_ route'), и он всегда возвращает пустое значение. Так как я новичок в ветке, я уверен, что упускаю что-то довольно простое и легкое.

1 Ответ

0 голосов
/ 17 апреля 2019

Поскольку вы работаете с 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 #}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...