【问题标题】:How to use Sessions in Twig如何在 Twig 中使用会话
【发布时间】:2014-09-17 16:42:58
【问题描述】:

我需要什么:

  • 我需要在 twig 中实现会话。

  • 我已经在 php 中实现了代码逻辑,但不知道如何在 twig 中实现。

  • 我有参考链接Accessing session from TWIG template

这里是代码

              <?php
               session_start();
               if(isset($_SESSION["count"]))
               {
                 $accesses = $_SESSION["count"] + 1;
               }
               else
               {
               $accesses = 1;
               }
               $_SESSION["count"] = $accesses;
      ?>
   <html>
  <head>
 <title>Access counter</title>
 <script>
function callback()
{
   var page = "<?php echo $accesses; ?>";
               if (page >4)
               {
               alert("limit exceeded");         
               }
               else
               {
               alert("ok");                
               }
}
callback();

<p>You have visited this  <?php echo $accesses; ?> times today.</p>

    </body>
    </html>

【问题讨论】:

  • 好吧,请看一下这个链接:link
  • 您使用的是 Symfony 2 框架,还是只使用 Twig 组件?
  • 使用 Symfony 2 框架

标签: php symfony session twig


【解决方案1】:

您没有“在 Twig 中实施会话”,期间。您在 PHP 代码中实现会话,然后将您可能希望在 HTML 模板中显示的任何信息传递给 Twig 以进行呈现。例如:

session_start();
$_SESSION['count'] ... // do whatever you want here to count

$twig = new Twig_Environment(...);
echo $twig->render('my_template.twig', ['count' => $_SESSION['count']]);

这会处理您的会话代码,然后将会话的计数值传递给 Twig。在您的模板中,您可以输出它:

<p>{{ count }}</p>

您可以将整个 $_SESSION 数组传递给 Twig,因此您可以访问其中的所有内容。

【讨论】:

  • 你能指导我如何在 symphony 自定义函数中实现这个
  • 我还没有使用完整的 Symfony,所以没有。如果您需要这方面的具体帮助,请专门为此提出一个新问题。
  • 可以帮助 var page = "";当我想在 twig 中调用 javascript 中的函数计数时。
  • var page = {{ count }};(或{{ accesses }},或您将值传递给 Twig 时命名的任何值。)
  • 我面临的问题是当网页也被重新加载时没有警报我在stackoveflow中提出了问题stackoverflow.com/questions/25887673/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-10
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 2017-03-22
相关资源
最近更新 更多