2016-05-31 5 views
2

私はLaravel 5.1を使用しています。私は今までプロジェクトにセッションを保存するためにデフォルトのファイルドライバを使用してきました。Laravel - データベースドライバでセッションが維持されない

は、今私はofficial documentationによると、そのデータベースドライバに切り替えることを決めたいくつかの理由から、私は、データベース内のセッションテーブルを作成/ session.php

'driver' => 'database' 

私の設定に以下の行を変更し 私は私のウェブサイトを閲覧起動したときに、今私は、新しいテーブル内のいくつかのデータを見ることができます:

The screenshot of my sessions table

しかし、私は今、セッションからすべてのデータを取得することはできません!これらは、私は、次のよ手順は次のとおりです。

私はセッションに私のデータを格納します。私は別のページに移動すると

session([ 'mykey' => 'mydata' ]); 

、私は私のデータの背中を取得しよう。

$data = session('mykey'); // this is always null 

問題は出力が常にnullになることです。 デフォルトのファイルセッションドライバを使用して戻ってくると、すべて正常に動作し、セッションから保存された値を取得できます。私のconfig/session.phpで

他の値はデフォルトのものです:

'lifetime' => 120, 
'expire_on_close' => false, 
'encrypt' => false, 
'connection' => null, 
'table' => 'sessions', 
'lottery' => [2, 100], 
'path' => '/', 
'domain' => null, 
'secure' => false, 

私は設定で何かが足りないのですか?

+0

ルートにWebミドルウェアを追加しましたか? – Jerodev

+0

@Jerodev私はLaravel 5.1を使用していますので、デフォルトのWebミドルウェアはありません。私が間違っている? –

+0

実際、申し訳ありませんが、私の悪い – Jerodev

答えて

1

Laravelはあなたがすべてのセッションの後Session::save()をしなければならないhttps://github.com/laravel/framework/issues/6506

を永続セッションの問題を抱えているが、追加、更新または

$id = Input::get('id'); 
Session::forget('cart.' .$id); 
Session::save(); 
+0

は試してみましたが、うまくいきませんでした。 –

+0

ギスタブの問題は2年前からです。保存するために 'Session :: save()'を行う必要はありません。それはセッションミドルウェアによって自動的に処理されます。 – ceejayoz

+0

"Laravelはセッションを永続させるのに問題があります"いいえ、私はあなたに保証していません。 – user3343366

0

以下のように削除私はおそらくちょうど私の問題への解決策を見つけました。誰かが同じ問題を抱えている場合、これは答えとして書いています。これは役に立ちます。

基本的に私はセッション(モデルのコレクション全体)でTOO MANYのものを保存していました。もちろん、これは本当に悪い考えです。

これは検索ページで起こっていたので、結果がどれだけ得られたかによって、セッション内のすべての結果を保存していたため、ユーザーはログ記録されたセッションから追い出されました。

見つかったモデルのIDのみを保存し、実行時にそれらを取得することによってコードをリファクタリングするのは適切です。

0

数時間の研究の結果、私は過去数年間私に何度もポップアップしていたため、作曲家にlaravelをインストールするときに断続的な問題が発生すると判断しました。 laravelチームはこれについての報告は不足していませんが、それを複製できないという主張はバージョン4以降の問題を無視したままにしています。

これを修正する方法についての提案がある投稿が数多くありますが、確実にセッションが動作していないことを認識した瞬間に新しいインスタンスをスピンアップするだけです。私はそれがファイルのいくつかと何か関係があるか、またはコード化されたエンコーディングがあると仮定します。新しいインストールが毎回これを解決します。

関連する問題