【问题标题】:Unable to print session variables in twig in symfony3无法在 symfony3 的树枝中打印会话变量
【发布时间】:2016-11-23 18:45:18
【问题描述】:

我正在尝试访问控制器中设置的树枝中的会话变量。由于某些原因,它在树枝中不起作用。我检查了在另一个控制器中打印的会话变量,它给出了预期的结果,但变量在模板中显示为空。我不知道我是否在配置中遗漏了什么。

//Below is my code in controller

$session = $request->getSession();
$session->set('user', [
    'id' => $user->getId(), 
    'firstName' => $user->getfirstname()
]);

// code in twig
{{ dump(app.session) }}

【问题讨论】:

  • 您是否将$session 变量交给了twig?
  • 没有。我没有将 $session 变量传递给树枝。我正在考虑它的全局配置,因此明确地没有将 $session 数组传递给 twig。我错了吗?
  • 哦,愚蠢的我!关于全局变量,您当然是对的。

标签: twig symfony


【解决方案1】:

不,不要假定会话变量是全局的。

我已经这样做了,您需要在渲染 Twig 时通过数组传递。像这样的:

return $this->render('my_twig_file.html.twig', array(
        'user' => $session->get('user'),
));

然后在 Twig 中转储它:

{{ dump(user) }}

另外,请确保不要在 PROD 环境中使用转储。您可能希望在完成测试后将转储注释掉,或使用其他文件。

【讨论】:

    【解决方案2】:

    我自己找到了解决办法。我已经使用自定义树枝扩展来访问像会话这样的全局变量,没有任何问题。只需找到下面的代码。

    http://symfony.com/doc/current/cookbook/templating/twig_extension.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      相关资源
      最近更新 更多