【问题标题】:can I display parameters value ($_POST, $_GET, $_SESSION, $_SESSION) using twig template engine component我可以使用 twig 模板引擎组件显示参数值($_POST、$_GET、$_SESSION、$_SESSION)吗
【发布时间】:2013-10-23 23:51:14
【问题描述】:

我试过这样做:

{{ $_GET['page'] }}

但还是不行。

【问题讨论】:

    标签: php twig


    【解决方案1】:

    对于 $_POST 变量使用这个:

    {{ app.request.parameter.get("page") }}
    

    对于 $_GET 变量使用这个:

    {{ app.request.query.get("page") }}
    

    对于 $_COOKIE 变量使用这个:

    {{ app.request.cookies.get("page") }}
    

    对于 $_SESSION 变量使用这个:

    {{ app.request.session.get("page") }}
    

    【讨论】:

    • 这是假设您通过正确设置了这些密钥的“应用”哈希。
    • @Maerlyn 这是 symfony 解决方案
    • @Jenechka 该问题未标记为 symfony,问题中没有任何内容建议使用它。
    • Request 对象自 13 年以来已更改。现在你应该使用:{{ app.request.request.get("page") }} 来检索 POST page 变量。
    • 有点误导,求zf2解决方案
    【解决方案2】:

    Twig 中唯一可用的变量是:

    如果您希望有一个可用的page 变量,请将"page" => $_GET["page"] 添加到render 的第二个参数。

    如果您希望有完整的$_GET 超全局可用,请将"GET" => $_GET 添加到render 的第二个参数。

    【讨论】:

      【解决方案3】:

      您无法在 TWIG 中访问原始 PHP 值,因此您必须将所需的任何内容附加到 twig 对象。

      这是将$_GET$_POST$_SESSION 附加到树枝的示例。

      //initialise your twig object
      $loader = new \Twig_Loader_Filesystem(__PATH_TO_TEMPLATES_FOLDER__');
      $this->twig = new \Twig_Environment($loader);
      
      $this->twig->addGlobal('_session', $_SESSION);
      $this->twig->addGlobal('_post', $_POST);
      $this->twig->addGlobal('_get', $_GET);
      

      现在假设您有一个名为 username 的值存储在上述每个中($_GET$_POST$_SESSION) 您现在可以在模板中访问所有这些内容,如下所示。

       {{ _session.username }}
       {{ _post.username }}
       {{ _get.username }}
      

      希望对你有帮助

      【讨论】:

        【解决方案4】:

        另一个可行的解决方案@ 2019

        app.request.get('page')
        app.request.request.get('page')
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-19
          • 1970-01-01
          • 2014-06-19
          • 1970-01-01
          • 2013-12-25
          相关资源
          最近更新 更多