dtra49684 2013-11-16 20:23
浏览 61

在Laravel 4中设置Cookies仅适用于App :: after()

I try to set a Cookie in Laravel 4 in a specific route.

Unfortunately, setting the Cookie does only work in the global App::after() filter.

First thing I tried was returning a response with a Cookiefrom my Controller.

This doesn't work:

return Response::make($view)->withCookie(Cookie::make('foo','bar'));

However, this does:

return Response::make()->withCookie(Cookie::make('foo','bar'));

But does not solve my problem.

Next I tried it with an after filter as follows.

Route::filter('cookie', function($route, $request, $response)
{
    $response->withCookie(Cookie::make('foo', 'bar'));
});

This does not work either.

Next, I tried it using Cookie::queue(), which I've found in another answer - with no luck.

The only place the Cookie is set properly is in App::after().

App::after(function($request, $response)
{
    $response->withCookie(Cookie::make('foo', 'bar'));
});

Besides I'm pretty sure that one of the other approaches should work, this solution doesn't give me the control I'm looking for.

I'm running Laravel v4.0.9.

  • 写回答

1条回答 默认 最新

  • draj30958 2013-11-18 10:10
    关注

    Try this tested, working code.
    Specify expiration time (in minutes from now). Dont you use some cookie extension in your browser, which may protect/blacklist specified cookies from being modified...

    Route::get('cookieset', function(){
        $cookie = Cookie::make('foo', 'bar', 60);
        return Redirect::to('cookieget')->withCookie($cookie);
    });
    
    Route::get('cookieget', function(){
        dd(Cookie::get('foo'));
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题