如何在Twig中使用Sessions

时间:2014-09-17 08:16:29

标签: php symfony session twig

我需要什么:

这是代码

              <?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>

1 个答案:

答案 0 :(得分:3)

您不会在Twig&#34;,期间实施会话。您可以在PHP代码中实现会话,然后将您可能希望在HTML模板中显示的任何信息传递给Twig进行渲染。 E.g:

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,这样您就可以访问其中的所有内容。