Twig是否允许使用关联数组作为flash会话变量?

时间:2012-12-28 22:10:47

标签: symfony twig silex

我正在使用Silex,我想知道是否可以将关联数组用于flash会话变量?我似乎无法让它发挥作用。

以下是我一直在尝试的内容:

在我的应用文件中设置flash var。

$my_array = array('fruit' => 'apple', 'veggie' => 'carrot');
$app['session']->setFlash('myFlashVar', $my_array);

并在Twig中使用。

{% set myVar = app.session.getFlash('myFlashVar') %}
// And so that we don't get an error, check to see if the key exists
{% if 'fruit' in myVar|keys  %}{{ myVar['fruit'] }}{% endif %}

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:3)

setFlashgetFlash一种弃用的方法,因此应该避免使用。

您可以使用Session :: getFlashBag提供的偏好方法来运行您的代码(双关语意图?)

PHP:

$my_array = array('fruit' => 'apple', 'veggie' => 'carrot');
$app['session']->getFlashBag()->set('myFlashVar', $my_array);

TWIG:

{% for flashMessage in app.session.flashbag.get('myFlashVar') %}

    {{ flashMessage }}

{% endfor %}

免责声明:我只使用Symfony2(2.16)框架测试了这个 - 而不是Silex。在Symfony2中它是:

$this->get('session')->getFlashBag()->set('myFlashVar', $my_array);