Laravel 5.1 会话在外部不工作 Route::get

Laravel 5.1 Session not working outside Route::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'=>'UsersController@addnew']);

使用上面的代码:session('username') not null

但是,当我像下面这样使用这段代码时:

$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'=>'UsersController@addnew']);

使用上面的代码:session('username') null => 所以 $data 是非对象,代码不是正在工作。

请有人帮帮我!

非常感谢!

如果你这样做更好

routes.php

  Route::get('/addnew', 'HomeController@addnew');

在控制器中(本例中的 HomeController 应该默认存在)

将此添加到控制器

  public function getuser(){

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


 }

public function addnew() {

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

}