我正在使用Laravel 5.2并尝试使用以下代码来设置cookie,但未设置cookie。我通过查看Chrome / Safari / FireFox开发工具以及在'cookie-test'刀片模板中调用Cookie :: get('test')进行检查。
class SampleController extends Controller {
public function index() {
echo 'setting cookie...';
$response = new Response(view('cookie-test'));
$response->withCookie('name', 'value', 60);
return $response;
}
}
我还尝试了在官方文档中引入的其他方法,例如
$response = new Illuminate\Http\Response('Hello World');
$response->withCookie('name', 'value', $minutes);
return $response;
,
$response->withCookie(cookie()->forever('name', 'value'));
,
Cookie::queue(cookie('name', 'value', 60))
等等,也引用了stackoverflow的答案。
有什么我想念的吗?我需要提前设置的任何配置?有什么好方法可以调试这个问题吗?
我很感激任何建议,谢谢。
答案 0 :(得分:4)
我找到了原因。在返回$ response之前使用echo()或var_dump()将阻止应用程序设置cookie。我在上面的Controller的构造函数调用的类中使用了var_dump()进行调试,但是在删除var_dump()行之后,cookie已成功设置。