Laravel 5.1会话在Route :: get之外无法正常工作

时间:2016-06-02 02:49:39

标签: php laravel laravel-5.1 laravel-routing

我有一些这样的代码并正在工作:

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 是非对象和代码无效。

请有人帮助我!

非常感谢!

1 个答案:

答案 0 :(得分:1)

如果你这样做会更好

<强> 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());

}