2017-01-18 2 views
0

Ich habe meine $user Variable in meinem Controller, und ich möchte auf eine Route mit Übergabe der $ Benutzervariable umleiten. Auf der Route gebe ich nur die Ansicht zurück.Übergabe der Variablen von Controller zu Route und dann Ansicht

Dies ist, wie ich von meinem Controller zurück:

Route::get('welcome', array('as' => 'welcome', function() { 
    return view('main'); 
})); 

Oder zum Beispiel, wenn ich will eine boolesche Variable zurückzukehren, nur um:

return Redirect::route('welcome')->with('user',$user);

Und meine Route wie folgt aussieht wissen, ob der Benutzer gerade angemeldet ist oder nicht (so kann ich zum Beispiel ein Willkommens-Popup anzeigen), was soll ich tun?

Was ist der beste Weg, um die $user Variable zu meiner Ansicht zu übergeben?


Ich weiß, dass ich direkt return view('main')->with(['user' => $user]); verwenden, aber dies lässt den Link hässlich.

+0

Sie können die Benutzer-ID stattdessen an die Route übergeben. wie 'return Redirect :: route ('welcome /'. $ user-> id)' und es wird zu 'http: // website.com/welcome/1' führen. Dann von 1, können Sie den Benutzer erhalten. Die Verbindung ist weniger hässlich. – EddyTheDove

+0

Setzen Sie Ihre Variable in Sitzung. – Bugfixer

Antwort

0

Da Sie gerade versuchen, Daten an eine andere Ansicht zu übergeben, ohne es durch die URL zu übergeben. Sie können mit der Sitzung arbeiten. Wenn sich anmelden ok war, wie dies in einer Sitzung speichern:
session(['signedup' => true]);

Dann in Ihrer Begrüßungs-Seite, um es wie
$isSignedUp = session('signedup');

Von dort Sie etwas mit $isSignedUp Variable tun können.

0

Ich denke, Sie sollten versuchen, diese:

return Redirect::to('/welcome?user='. $user); 

ODER

return view('welcome',compact('user')); 

Hoffnung diese Arbeit für Sie!

Verwandte Themen