2015-06-30 16 views
5

Ich versuche, ein Cookie zu setzen, wenn ich einen Blick zu laden:Laravel 5.1 Cookie-Ausgabe

$cookie = Cookie::make('mycookie', $myval, 43200); 
$view = view('myview')->with($data); 
return Response::make($view)->withCookie($cookie); 

Und das Cookie auf eine spätere Anfrage lesen:

if (Cookie::has('mycookie')) { 
    //do something 
} 

Das Cookie wird nie gesetzt. .. wo gehe ich falsch?

Antwort

4

Dies funktioniert ein Cookie mit Laravel zuverlässig auf:

use Illuminate\Http\Request; 
use Illuminate\Contracts\Cookie\Factory; 

    class MyClass 
    { 

     public function handle(Request $request, Factory $cookie) 
     { 
      $cookie->queue($cookie->make('myCookie', $request->someVal, 129600)); 
      return redirect('/myPage'); 
     } 

    } 
2

Sie können Cookie erstellen wie folgt

$view = view('myview')->with($data); 

$response = new Illuminate\Http\Response($view); 

return $response->withCookie(cookie('name', 'value', $minutes)); 

Oder Sie können wie unter den Cookie-Warteschlange, und es wird mit der nächsten Anfrage

Cookie::queue('name', 'value'); 

return response('Hello World'); 

Read More

+0

Dieser Fehler gibt: 'withCookie' Methode nicht in der Klasse Illuminate \ Http \ Response- – suncoastkid

+0

seltsam gefunden, weil Methode gibt, https: // GitHub. com/laravel/framework/blob/5.1/src/Illuminieren/Http/ResponseTrait.php –

+0

Cookie :: Warteschlange ('Mycookie', $ Myval, 43200); $ view = view ('myview') -> mit ($ data); Antwort zurückgeben ($ view); funktioniert auch nicht. Kein Fehler, aber kein Cookie. – suncoastkid

0

Eine mögliche Ursache gesendet werden Wenn Sie eine ungültige Blade-Direktive haben, wird die Seite normal angezeigt, jedoch werden alle gesetzten Cookies nicht beibehalten.

traf ich dieses Problem, da ich @script in meine Klinge Vorlage enthalten war, anstatt @section('script')

ich den Grund vermuten, dass die Cookies nicht erhalten ist, dass die schlechte Richtlinie einen Fehler in der kompilierten PHP-Code verursacht, die die Ansicht bekommt im Cache gespeichert und so stürzt die Verarbeitung ab, bevor der Cookie übertragen wird.