Laravelのデフォルトの移行を追加して、データベースとのセッションを使用しました。その前に、私はファイルシステムを使用していました。私はこれをした:php artisan session:table
私はすでにファイルセッションで使用していたすべての列を追加しました。この後、私はデフォルト値'driver' => env('SESSION_DRIVER', 'database'),
でconfig/session.php
を変更してから、私はLaravel 5.3:セッションデータベースが正常に動作しません
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=database
QUEUE_DRIVER=sync
に.env
を変えたので、すべてが私のためにOKになりたい、私は、このコマンドを実行します。artisan admin:clear
。コマンドは、このん:
public function handle()
{
Artisan::call('clear-compiled');
Artisan::call('cache:clear');
Artisan::call('config:clear');
Artisan::call('view:clear');
Artisan::call('route:clear');
}
それから私は、このコマンドをrunned:composer dumpautoload
、その後php artisan migrate
はたぶんすべてthosesのコマンドは必要ありませんが、私は設定で変更できますとき、私はいつもきれいにすることを好みます。
本当の問題
今、私はまだセッションファイルを取得していますし、私はまた、データベースにセッションを持っていますが、php artisan session:table
コマンドからのみデフォルト値6列が満たされています。その他の列の滞在はすべてnull
です。
いくつか読んだ後、それはユーザーが認証()している間、データを変更することができるようにする方法ですので、私は、データベースを使用したいGOAL
が。私はセッションを使って見ています。例:
@if(Session::get('intellitaux_simple') == 1)
<li class="@if ($coreData['navChild'] == 'simple') active @endif">
<a href="{{ url('/intellitaux/simple') }}">INTELLITAUX SIMPLIFIÉ</a>
</li>
@endif
セッションのデータがLogSuccesfulLogin.php
イベントを使用してユーザログの時点で追加されます。
いつか私はすでにログインしているユーザーへの新しいリンクにアクセスする必要がありますが、強制的にログアウトしてからログインする必要はありません。アクティブな場合、ユーザーのセッションで直接変更を適用したいと思います。だから、なぜ私のデータベースセッションがうまくいかないのかを理解する助けになるなら、私は感謝します。
私の目標に到達するより良い方法があると思うなら、お勧めします。
は、私は単にデフォルトとPHPの移行に関するいくつかの編集をした、ありがとう。私はDatabaseSessionHandlerについて知らなかった。 Session :: set( 'key'、value)を使用すると、認証ユーザーセッションの行内のセッションテーブルのキー列に値が置かれます。 –
'Session :: set( 'key'、value)'は 'payload'フィールドのみを変更します。 –
だから、各キーのすべての列を追加することは役に立たなかった。ありがとうございました!この場合、投稿に関連する2つの質問があります。 1.なぜ私はまだセッションファイルをstorage/framework/sessionsフォルダに入れていますか? 2.私はセッションテーブル内の同じuser_idに対して複数のセッション行を取得しました。認証されたユーザーが使用する方法を見つける方法はありますか? –