могу ли я отобразить значение параметров ($ 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 }}
надеюсь, что это помогает