【问题标题】:Get cookie from Twig template从 Twig 模板获取 cookie
【发布时间】:2017-03-09 18:37:26
【问题描述】:

我正在尝试访问我在 Drupal 网站中设置的 cookie。 我在提交表单时创建了两个 cookie:

  • 使用 Drupal 函数 = user_cookie_save(['myfirstcookie' => 'myfirstdata'])
  • 带有经典的 PHP 函数 = setcookie('mysecondcookie', 'myseconddata', time() + (86400 * 30), "/")

我的 cookie 已设置,没问题。 但是,我没有找到如何从我的 Twig 模板中获取它们(或其中一个)。 Symfony 的 app.request.cookies 好像不存在。

你有什么想法吗?

【问题讨论】:

  • 只需将$_COOKIE 变量从控制器传递到视图槽twig?
  • 没有必要但也非常不鼓励与$_COOKIE纠缠。

标签: symfony cookies twig drupal-8


【解决方案1】:

Twig 具有全局 app 帮助上下文,您可以通过它访问 cookie(以及其他内容)。试试这个:

{{ dump(app.request.cookies) }}

最终:

{{ app.request.cookies.get('MY_COOKIE_NAME') }}

请记住,cookiesParameterBag (API) 的一个实例,因此您必须通过get() 调用来访问它。

希望这会有所帮助...

【讨论】:

  • 这在 Drupal 中不起作用。这是 OP 要求的。
【解决方案2】:

来自控制器的过去 Cookie 变量并检查它。它对我有用。 我在控制器中的代码是:

$data['cookie'] = $_COOKIE['postcode'];

postcode 是我的 cookie 名称,在我的 twig Templete 中,我写了这行代码

{{  cookie  }}

并显示我的 cookie 值。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2014-07-14
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多