セッションに値を入れる際、色々詰まったのでメモ。
本記事ではRequestインスタンスを介してセッションを使用していますが、ファサードやヘルパも使えます。
基本的な使い方はReadoubleを参照。
セッションへ値の保存
$request->session()->put('key', 'value');
‘key’というキー名で、’value’というデータが保存されます。
配列でセッションを保存
$request->session()->put('form_input', [ 'brand-caractor' => $input['brand-caractor'], 'brand' => $input['brand'], 'parent-cat' => $input['parent-cat'], ..... ]);
のようにputの第二引数を [ ] で渡してあげると、 form_input(任意の名前)の下にそれぞれのキーと値が格納されます。
セッションform_inputは以下のようになります。
![](https://mutimutisan.com/wp/wp-content/uploads/2022/01/4937535f4df052c5401eac0d6c8fc957-640x246.png)
普通の配列のようになっていますね!
配列になったセッションにデータを追加
上のセッションに、新しいデータとしてimageを追加したいと思います。
$request->session()->put('form_input.image', $arr);
putの第一引数で、’form_input.image’のようにキー名を全て記述します。
$arr には配列が入っていますが、普通のstringでも問題ありません。
これで、
![](https://mutimutisan.com/wp/wp-content/uploads/2022/01/1f052465ccb6025212251bef22435699-640x525.png)
(画像では見切れてますが) 'form_input'配下に'image'というキーがあり、その中に配列データが保存されました!
参考サイト
imageデータを追加する際、
最初 push を使ったのですがimage自体が配列になってしまい、
なんだか意味がわからないなーと思ったら
こちらでシンプルに訂正してくれていました。