могу ли я отобразить значение параметров ($ POST, $ GET, $ SESSION, $ SESSION) с помощью компонента Twig template engine
Я пробовал сделать так:
{{ $_GET['page'] }}
но это все еще не работает.
3 ответов
единственные переменные, доступные в Twig:
- те, что вы проходите через второй параметр Twig_Environment#render ()
- те, которые вы проходите мимо вызова Twig_Environment#addGlobal ()
если вы желаете page переменной, доступной, добавить "page" => $_GET["page"] ко второму параметру render.
если вы хотите иметь полное $_GET superglobal доступно, добавить "GET" => $_GET к второй параметр render.
для переменных $_POST используйте это:
{{ app.request.parameter.get("page") }}
для переменных $_GET используйте следующее:
{{ app.request.query.get("page") }}
для переменных $_COOKIE используйте следующее:
{{ app.request.cookies.get("page") }}
для переменных $_SESSION используйте следующее:
{{ app.request.session.get("page") }}
вы не можете получить доступ к необработанным значениям PHP в TWIG, поэтому вы должны прикрепить все, что вам нужно к объекту twig.
вот пример присоединения $_GET, $_POST и $_SESSION к прутику.
//initialise your twig object
$loader = new \Twig_Loader_Filesystem(__PATH_TO_TEMPLATES_FOLDER__');
$this->twig = new \Twig_Environment($loader);
$this->twig->addGlobal('_session', $_SESSION);
$this->twig->addGlobal('_post', $_POST);
$this->twig->addGlobal('_get', $_GET);
теперь предположим, что у вас есть значение, называемое username хранится в каждом из вышеперечисленных ($_GET, $_POST и $_SESSION)
Теперь вы можете получить доступ ко всем из них внутри шаблона следующим образом.
{{ _session.username }}
{{ _post.username }}
{{ _get.username }}
надеюсь, что это помогает