【问题标题】:Using Cookies in Laravel 4在 Laravel 4 中使用 Cookie
【发布时间】:2013-09-11 00:35:38
【问题描述】:

你如何在 Laravel 4 中使用 cookie?

我确定这很简单,但我需要一些帮助。

据我所知,您必须像这样创建一个 cookie:

$cookie = Cookie::make('test-cookie', 'test data', 30);

那么,除了返回自定义响应之外,您如何设置呢?使用自定义响应设置它有什么好处?我什么时候想这样做?

如果我想设置一个 cookie 并返回一个视图怎么办?除了告诉我如何使用withCookie()之外,return Response::make('some text')->withCookie('test-cookie')实际上对我有什么好处?

就像我说的,我可能只是在这里遗漏了一些东西,但是我将如何以实际的方式使用 cookie...

...就像有人输入信息、登录等,我想设置一个 cookie 并将他们带到一个有视图的页面?

【问题讨论】:

    标签: php cookies laravel laravel-4


    【解决方案1】:

    要返回带有视图的 cookie,您应该将视图添加到 Response 对象,然后返回整个内容。例如:

    $view = View::make('categories.list')->with('categories', $categories);
    $cookie = Cookie::make('test-cookie', 'test data', 30);
    
    return Response::make($view)->withCookie($cookie);
    

    是的,写的有点多。原因是 Views 和 Response 是两个不同的东西。您可以使用视图来解析各种用途的内容和数据,不一定要发送到浏览器。这就是 Response 的用途,以及为什么如果你想设置标头、cookie 或类似性质的东西,它是通过 Response 对象完成的。

    【讨论】:

    • 如何获取cookie数据?
    【解决方案2】:

    这个是我比较喜欢用的:在任何时候,你都可以排队等待下一个请求发送的cookie

    Cookie::queue('cookieName', 'cookieValue', $lifeTimeInMinutes);
    

    【讨论】:

    • 不知何故,这个队列对我有用。 make 由于未知原因无法正常工作。
    • 这应该是公认的答案。既然可以一步完成,为什么要分两步完成?
    【解决方案3】:

    如其他答案中所述,您可以简单地将 Cookie 附加到响应/视图/重定向。

    $cookie = Cookie::make('name', 'value', 60);
    $response = Response::make('Hello World');
    
    return $response->withCookie($cookie);
    

    $cookie = Cookie::make('name', 'value', 60);
    $view = View::make('categories.list');
    
    return Response::make($view)->withCookie($cookie);
    

    $cookie = Cookie::make('name', 'value', 60);
    
    return Redirect::route('home')->withCookie($cookie);
    

    但您不需要将 Cookie 附加到您的回复中。使用 Cookie:queue(),就像使用 Cookie::make() 一样,您的 cookie 将在发送时包含在响应中。不需要额外的 withCookie() 方法。

    来源:http://laravel.com/docs/requests#cookies

    【讨论】:

      【解决方案4】:

      您也可以像这样将 cookie 附加到重定向

      return Redirect::route('home')->withCookie($cookie);
      

      【讨论】:

      • 是的,你可以。到目前为止,我只认为您只能使用 Response::make 来做到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 2013-11-30
      • 2020-01-13
      相关资源
      最近更新 更多