【问题标题】:symfony 3 cookies in a servicesymfony 3 服务中的 cookie
【发布时间】:2016-08-02 15:27:31
【问题描述】:

我需要在我的服务中创建一个 cookie

public function __construct(EntityManager $em, RequestStack $request)
{
    parent::__construct();

    $this->request = $request->getMasterRequest();
}

然后当我尝试在我的服务中的某个地方调用它时:

    echo $this->request->cookies->get('_ga');die;

我得到了我手动创建的 cookie,但调用 ->set(key, val) 并没有保存我的 cookie

 $this->request->cookies->set('test', time());
echo $this->request->cookies->get('test');

我有时间,但 cookie 只存在一次,在这个 webrequest 的范围内,如果我用 ->set 注释行,那么我应该看到时间没有改变,但我看不到它,因为 cookie 不是实际存储...有什么帮助吗?

【问题讨论】:

    标签: php cookies symfony


    【解决方案1】:

    也许您应该尝试将 cookie 设置为用于构建答案的 response 对象,而不是您从客户端收到的 request

    看看这篇文章,它适用于 Simfony 2,但我认为原理应该与 3 类似。

    Symfony2: setting a cookie

    $response->headers->setCookie(new Cookie("user", $user));
    

    此外,我认为您不应该在服务中设置 Cookie,尝试将所有必需的信息作为业务数据类传递给服务,并返回一个可用于制定响应对象的类,包括 cookie。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多