Laravelでグローバルセッションを設定する方法を教えてください。通常のPHPスクリプトでは、ブラウザが閉じるか関数session_destroy()
/unset()
が呼び出された場合、$_SESSION['myvar']
のようなグローバルセッションが終了します。Laravelでアプリ全体のグローバルセッションを設定するにはどうすればよいですか?
私はLaravelでこれを試してみましたが、それはコントローラでは動作しませんBaseControllerを拡張します。私のコードのコンテキストがある
Session::set('id', $user->id);
Session::get('id');
:
// ROUTES
Route::get('/', '[email protected]');
// CONTROLLER
class MyController extends Controller
{
public function setSession()
{
// ...
Session::set('id', $user->id);
return view('access');
}
}
// VIEW -> LOST Session
@if (Session::has('id') && Session::get('id') == 'hsdiwe78912hj')
I have access!
@else
I must stay here! <!-- I always get this -->
@endif
あなたは、データベースにセッションを保存しますか?どのセッションドライバを使用していますか?あなたはどこからID「hsdiwe78912hj」を取得しますか? $ user-> idもユーザーIDを返しますか?セッションは保存されていますか?Session :: all()ですべてのセッションを作成した場合の出力は何ですか? – bobbybackblech
Laravelは、サービスプロバイダを使用して、ロジックコードを実行する前にアプリケーションを「設定する」/セットアップします。セッションは 'config/session.php'で設定されています。これは重要なファイルです(このファイルを表示せずにセッションが期待どおりに動作していないかどうか尋ねることはできません)。 – Arcesilas
セッションのアイデアは、ブラウザが閉じた後に終了することですが、セッションの背後にあるアイデアは全部ですが、もっと永続的な解決策が必要な場合は、キャッシュドライバを試してみてください。あなたがlaravelのv5を使用している場合は、あなたは、UUコントローラまたは任意のセッションの名前空間をインポートしてください。 – ctf0