2016-06-02 7 views
1

Ich habe einige Code wie diesen und Arbeiten:Laravel 5.1 Session nicht außerhalb Strecke arbeiten :: get

Route::get('addnew',function(){   
     $user = Users::where('username','=',session('username'))->first(); 
     $data = $user->toArray(); 
     return view('layout.addnew')->with($data); 
    }); 
Route::post('addnew', ['uses'=>'[email protected]']); 

Mit Code oben: Sitzung ('username') nicht null

Aber, wenn ich benutze diesen Code wie folgt:

$user = Users::where('username','=',session('username'))->first(); 
$data = $user->toArray(); 
Route::get('addnew',function() use($data){ 
     return view('layout.addnew')->with($data); 
    }); 
Route::post('addnew', ['uses'=>'[email protected]']); 

Mit Code oben: Sitzung ('username') null => so $ data ist nicht Objekt und Code funktioniert nicht.

Jemand mir bitte helfen!

Vielen Dank!

+0

seine Null, weil was über der Route ist nicht ausgeführt, deshalb, nur was innen ist funktioniert, weil das ist die Route, die Sie zugreifen (ich denke ja) –

Antwort

1

es besser, wenn Sie dies tun

routes.php

Route::get('/addnew', '[email protected]'); 

im Controller (Homecontroller in diesem Fall die standardmäßig sein sollte)

fügen Sie diese der Controller

public function getuser(){ 

    return Users::where('username','=',session('username'))->first()->toArray(); 


} 

public function addnew() { 

    return view('layout.addnew')->with('user',$this->getuser()); 

} 
+0

Danke, aber ich habe so viel 'Route :: get' brauchen var '$ Daten ', und ich möchte Code nur einmal verwenden:' $ user = Benutzer :: wo ('Benutzername', '=', Sitzung ('Benutzername')) -> zuerst() -> toArray() ' –

+0

dann Sie sollten definitiv einen Controller verwenden, eine Methode (getuser forexempke) in den Controller hinzufügen, die die Daten zurückgibt, die Sie in diesem Fall $ user haben möchten, und wann immer Sie diesen $ user in einer anderen Methode brauchen, können Sie ihn wie folgt $ 'user = eingeben $ this-> getuser(); ' –

+0

Überprüfen Sie meine aktualisierte Antwort –