2016-11-20 106 views
1

我正在使用Laravel 5.2並嘗試使用以下代碼來設置Cookie,但未設置Cookie。我通過查看Chrome/Safari/FireFox開發工具以及在'cookie-test'刀片模板中調用Cookie :: get('test')來檢查。Laravel 5.2 - 無法設置Cookie

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)) 

等,參考計算器解答太。

有什麼我失蹤?我需要提前設置的任何配置?有什麼好的方法來調試這個問題?

我會很感激任何意見,謝謝。

+0

https://laracasts.com/discuss/channels/general-discussion/how-to-set-a-cookie-with-laravel-5 –

回答

3

我找到了原因。在返回$ response之前使用echo()或var_dump()會阻止應用程序設置cookie。我在上面的Controller的構造函數調用的類中使用了var_dump()進行調試,但是在刪除var_dump()行後,cookie成功設置。

+0

這種情況也發生在我身上,並且在經過了所有其他的計算器之後線程和laravel的Cookie ::方法,終於找到了這一個,並刪除我的var轉儲爲我解決了它 –