目次
Laravelの記事一覧は下記
PHPフレームワークLaravelの使い方
Laravelバージョン
動作確認はLaravel Framework 7.19.1で行っています
前提条件
eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています
Controllerにメソッド追加
(1) /sample/app/Http/Controllers/SampleController.phpにsession1メソッド、session2メソッドを追記
public function session1(Request $request)
{
$request->getSession()->put("key1", "value1");
$request->getSession()->put("key2", "value2");
return view('sample.session1');
}
public function session2(Request $request)
{
$data = [
'key1' => $request->getSession()->get("key1")
];
return view('sample.session2', $data);
}
(2) /sample/routes/web.phpに下記を追記
Route::get('sample/session1', 'SampleController@session1'); Route::get('sample/session2', 'SampleController@session2');
viewの作成
(1) /sample/resources/views/sample/session1.blade.phpファイル作成
<html>
<head>
<title>sample</title>
</head>
<body>
<form action="{{ url('sample/session2') }}" method="get">
<input type="submit" >
</form>
</body>
</html>
(2) /sample/resources/views/sample/session2.blade.phpファイル作成
<html>
<head>
<title>sample</title>
</head>
<body>
<div>{{$key1}}</div>
<div>{{ session('key2') }}</div>
</body>
</html>
$request->getSession()->get
session
どちらでもセッションに格納した値を取れます
ただし、session
関数は配列を引数として与えられた場合、取得ではなく、セッションへの値の保存になってしまうので気を付けましょう
動作確認
http://localhost/laravelSample/sample/session1
送信ボタンクリック
実行結果
value1
value2
http://localhost/laravelSample/sample/session1
でsessionにputした値が
http://localhost/laravelSample/sample/session2
で表示されました