如何以Twig形式访问$ _POST?

时间:2016-11-19 09:01:50

标签: php post twig

我试图打印输入字段的值' gameTitle'在Twig。

这是我的代码:

<h1>New game</h1>
<form method="post" action="">
    <label>Game Title</label>  
    <input type="text" value="Monopoly" name="gameTitle"><br>
    <input class="btn btn-success" name="submit" type="submit" value="Add game">
</form>
{% if app.request.post('submit') %}
    {{ app.request('gameTitle')}}
{% endif %}

我也尝试过:

{{ app.request.parameter.post('gameTitle}

因此我想打印这个结果:&#34; gameTitle是Monopoly&#34;。

我的问题,如何在Twig中执行以下PHP代码?

<?php
echo "gameTitle is ".$_POST['gameTitle'];
?>

更新 - 我没有使用Symfony,只是Twig:http://twig.sensiolabs.org/ 这对我不起作用:

{{app.request.post('gameTitle')}}
{{app.request.request.get('gameTitle')}}
{{ app.request.request.get("gameTitle") }}
gameTitle is {{ app.request.request.post('gameTitle') }}

2 个答案:

答案 0 :(得分:1)

你应该使用

{{ app.request.request.get("gameTitle") }}

它已经改变了。

答案 1 :(得分:1)

据我所知,默认情况下,香草Twig无法访问请求variables。您应该明确地将它们传递给模板,例如:

require __DIR__ . '/vendor/autoload.php';

$loader = new Twig_Loader_Filesystem(__DIR__ . '/templates');
$twig = new Twig_Environment($loader, array(
    'cache' => __DIR__ . '/tpl_cache',
));

echo $twig->render('template.twig', ['post' => $_POST]);

然后按如下方式使用:

{% if post.gameTitle is defined %}
Game title: {{ post.gameTitle }}
{% endif%}