могу ли я отобразить значение параметров ($ POST, $ GET, $ SESSION, $ SESSION) с помощью компонента Twig template engine

Я пробовал сделать так:

{{ $_GET['page'] }}

но это все еще не работает.

3 ответов


единственные переменные, доступные в Twig:

если вы желаете 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 }}

надеюсь, что это помогает