2016-04-19 6 views
2

Ich bin neu in Laravel und mit Laravel 5 Ich mag diesesLaravel 5 Session nicht verfügbar für die zweite Seite

einige Werte in Session am Speicherung dieser mit der Funktion in einem Controller sagen ABC

Session::put('check_in', $check_in); 
    Session::put('check_out', $check_out); 
    Session::put('no_of_rooms', $no_of_rooms); 
    Session::put('adult', $adult); 
    Session::put('child', $child); 
    return view('room'); 

ich erhalte die Werte all diese Sessions in Zimmer anzeigen, aber jetzt ist das Problem ist, wenn ich zu einem anderen Link oder auf anderer Seite von diesem Raum aus Sicht würde und mit der Session als

echo Session::get('check_in')."<br>"; 
    echo Session::get('check_out')."<br>"; 
    echo Session::get('no_of_rooms')."<br><br>"; 
    echo Session::get('adult')."<br>"; 
    echo Session::get('child')."<br>"; 

Ich kann keinen dieser Session-Werte erhalten.

ich Sessions bin mit, so dass es auf allen Seiten sein muss, bis die Session geflasht oder Browser wird geschlossen, aber es ist nicht eine der Session Werte abrufen ..

I may Themen wie diese auf Stapel gesehen haben Überlauf, aber ich bin nicht in der Lage, diese Antworten zu verstehen, bitte erklären Sie mich gründlich und lösen dieses Problem, ich bin in diesem Teil der letzten 4 bis 5 Tage ahnungslos stecken ...

+1

Was ist Ihr Sitzungstreiber? Es sollte in 'config/session.php' sein. Wenn Sie den 'file' Treiber verwenden, vergewissern Sie sich, dass Ihr 'framework/sessions'-Ordner Schreibzugriff auf Ihren Webserver hat. Stellen Sie außerdem sicher, dass Sie nicht 'exit()' '' '' '' '' '' '' '' '' _ '' '_' '' _ '' '_' '_' 'exit()' werden tatsächlich davon abgehalten, geschrieben zu werden. –

+0

Mein Sitzungstreiber ist eine Datei, und ich weiß nicht, wie ich überprüfen kann, ob mein Sitzungsverzeichnis Schreibzugriff hat oder nicht, ich habe gelöscht, um zu prüfen, ob Sitzungsdateien erstellt werden oder nicht, aber sie erzeugen nicht, und ich benutze sie nicht Ausfahrt(). – Manish

+0

Hallo Manish, Sie sollten die Dokumentation lesen, bevor Sie ein Projekt in einem bestimmten Rahmen starten. Sie sollten zunächst die Sprache (php), das mvc-Muster kennen und dann mit einem Framework beginnen. Wenn Sie keine Zeit mit dem Lesen der Dokumentation verbringen, haben Sie eine Menge Probleme mit Ihrer Webanwendung. Viel Spaß beim Programmieren und weiter so! –

Antwort

0

Nach dem Erstellen einer neuen Laravel-Installation funktioniert es.

+0

Würde es Ihnen etwas ausmachen, die Antwort ein wenig mehr zu erklären, Kollegen Programmierer, wie es geholfen, das Problem zu lösen. – Daenarys

0

Wenn Sie Laravel 5 verwenden . *, dann sollten Sie die Web-Middleware in allen Routen verwenden, um die Sitzung zu verwenden.

Das sieht wie folgt aus: in routes.php in app/http Verzeichnis

Route::group(['middleware' => 'web'], function() { 

    Route::Auth(); 

    Route::get('/', '[email protected]'); 
    Route::get('/login', '[email protected]'); 
    Route::post('/login', '[email protected]'); 
} 

Sie Sitzung in all diesen Strecken nutzen können, indem sie unter 'Web' Middleware deklarieren.

Ich schlage vor, Sie mehr über 'web' Middleware in Laravel lesen 5.

Check this out: My Laravel 5.2.10 Sessions wont persist

HINWEIS: Ab Laravel 5.2.27 die Web-Middleware nun anstelle von Standard ist, Versuchen Sie, die Route :: group zu entfernen und sehen Sie, ob das hilft. https://github.com/laravel/laravel/blob/v5.2.27/app/Providers/RouteServiceProvider.php#L56

+0

Ich hatte versucht, es in Middleware zu setzen, aber es wirft Error of Token Mismatch Exception – Manish

+0

Sie müssen ein Token in Ihrem Formular setzen, wenn Sie Auth() verwenden. –

+0

für Starter können Sie Route :: Auth() in Ihrem Code entfernen. –

Verwandte Themen