我想在完成这组路由的所有操作后设置cookie 但是当我使用“before filter”时,它会返回一个响应,然后停止执行 另一件事。
我应该做什么?
这是我的代码
Route::filter('setcookie',function() {
$test = Input::get('test',0);
$cookie = Cookie::forever('cookie',Input::get('test'));
return Response::make(View::make('pages.home'))->withCookie($cookie);
});
<小时/>
Route::group(array('before' => 'setcookie'),function()
{
Route::get('/', function() {
return View::make('pages.home');
});
Route::controller('productrest', 'ProductRestController');
Route::resource('product', 'ProductController');
});
最佳答案
您可以使用laravel的Cookie::queue
功能。
Route::filter('cookie',function(){
Cookie::queue('key', 'value', 5);
});
来自 Laravel 文档:
Queueing A Cookie For The Next Response
If you would like to set a cookie before a response has been created, use the Cookie::queue() method. The cookie will automatically be attached to the final response from your application.
关于cookies - 如何在 "laravel"中设置没有响应的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22345442/