2016-07-12 8 views
1

投稿する前にたくさん検索しました。私が見つけたすべての「解決策」がうまくいかなかったのです。Laravel 5.2セッションが持続しない

セッション値を現在のルートとは異なるルートから取得できません。

routes.phpの

Route::group(['middleware' => 'web', 'prefix' => 'blog', 'namespace' => 'Modules\Blog\Http\Controllers'], function() 
{ 

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

Route::get('/home',['as' => 'home', 'uses' => '[email protected]']); 

Route::get('auth/login', 'Auth\[email protected]'); 

Route::post('auth/login', 'Auth\[email protected]'); 


Route::group(['middleware' => 'blog.auth'], function(){ 
    Route::get('/admin',['as'=>'dashboard','uses'=>'[email protected]']); 
    }); 
}); 

Kernel.php

protected $middlewareGroups = [ 
    'web' => [ 
     \ommitedbutcorrect\Http\Middleware\EncryptCookies::class, 
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
     \Illuminate\Session\Middleware\StartSession::class, 
     \Illuminate\View\Middleware\ShareErrorsFromSession::class 
    ], 

    'admin' => [ 
     \Modules\Admin\Http\Middleware\ControllerResolver::class, 
    ], 
    'admin.auth' => [ 
     \Modules\Admin\Http\Middleware\AdminAuthenticate::class, 
    ], 
    'blog.auth' => [ 
     \Modules\Blog\Http\Middleware\BlogAuthenticate::class, 
    ], 
    'api' => [ 
     'throttle:60,1', 
    ], 
]; 

AuthController.php

のchmod 777ストレージとブートストラップフォルダ、セッションドライバデータベースに。

セッションが、なぜ、私がSession:get( 'foo')で値を取得できないのかを説明するリクエストとともに、毎回nullを返すようになっているようです。

私はすでに3日を無駄にしていました。

あなたが詳細を必要とする場合は助けていただければ幸いです。

答えて

0

PHPの職人キャッシュとキャッシュクリアして修正:クリア

Iので、どんなに私が何をしたかの変更、他の人から私のプロジェクトは、それがDBセッションおよびIを使用していた(この場合、キャッシュされた設定を使用しましたファイルベースのセッションを使用したい)

0

私が間違っている、アレイ内のセッションミドルウェアと必ず理由Laravel船ないんだけど、あなたはLaravel> = v5.2.27にしている場合は、保護ミドルウェアグループ

protected $middleware = [ 
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
    \Illuminate\Session\Middleware\StartSession::class, 
]; 
+0

Nullを印刷しています。 – Sylar

0

へのstartSessionミドルウェアを移動し、あなたapp/Http/routes.phpファイルからwebミドルウェアを削除する必要があります。 v5.2.27以降、app/Http/routes.phpファイル内のすべてのルートは既にwebミドルウェアグループに含まれているため、ミドルウェアをファイル内に再度追加するとセッションが混乱します。

+0

Mineがバージョン5.2.39です。ルートファイルからWebミドルウェアを削除しても、laravel_sessionが作成されなくても動作しません。 – Sylar

0

新しいサービスプロバイダはどのようなサービスに加入しましたか?

+0

Errrm、もう一度来ますか? – Sylar

+1

私に配列 'providers' => [...]のconfig/app.phpファイルを表示する –

+0

http://pastebin.com/ecWds0kTここに行く – Sylar

1

私は、提供されているデフォルトの構造体laravelの代わりにモジュールを使用しているからだと思います。

すべてのルートは、デフォルトでlaravel 5.2でWebミドルウェアとバインドされますが、モジュールを使用し、各モジュールにはroutes.phpファイルがあります。 Webミドルウェアとルートを手動でバインドする必要があります。そうしないと、セッションが失われます。

これは、私が同様の問題に直面したときに行ったことでした。私の理解が正しいことを教えてください。

関連する問題