🚀

【Laravel6】セッションの値が多重連想配列の時に特定のkeyに対応するvalueを更新する

2021/01/20に公開

はじめに

あまりググっても出てこなかった方法なので、残しておきます。
この選択肢があればセッションの扱える幅が広がると思います。

対象のセッション(仮)

例えば

//セッションからkeyが'cartData'の値を取得
$request->session()->get('cartData');

これで取得した値が以下の場合を想定する

[
    [0] => [
        'item_name' => 'ジャケット',
        'item_count' => 1,
    ],
    [1] => [
        'item_name' => '靴下',
        'item_count' => 3,
    ],
    [2] => [
        'item_name' => 'バッグ',
        'item_count' => 2,
    ],
]

実現したいこと

靴下の個数を3 → 5個にしたい!

セッションの特定のkeyに対応するvalueを更新する方法

以下のコードで更新できる

$request->session()->put('cartData.1.item_count', 5);

->put()の第1引数に連想配列の階層を文字列連結することで特定のkeyのvalueにアクセスすることができる。

config()と同じ感じですね

さいごに

ドキュメントにも明確には記載されていなかった...

Laravel 6.x HTTPセッション

Discussion