gpt4 book ai didi

php - 将二维数组保存到 Laravel session 中

转载 作者:行者123 更新时间:2023-12-05 04:08:56 25 4
gpt4 key购买 nike

我正在尝试将纯 PHP 代码转换为 Laravel。此代码广泛适用于 session - 这是代码的简化部分(请忽略语法错误):

    $_SESSION['gamedata']=[
'game'=> 23 ,
'n'=>0,
'Cards'=>[],
'Values'=>[],
];
$_SESSION['gamedata']['Cards'][]= getCard();
$_SESSION['gamedata']['Values'][]= getVal();

现在根据 laravel 文档,我的选择是

    session(['gamedata' =>  [
'game'=> 23 ,
'n'=>0,
'Cards'=>[],
'Values'=>[],
]]);

$gamedata = session('gamedata');
$gamedata['Cards'][]= getCard();
session(['gamedata'=>$gamedata]);

$gamedata = session('gamedata');
$gamedata['Values'][]= getVal();
session(['gamedata'=>$gamedata]);

这是非常愚蠢的……不,我不能在行尾保存它,因为函数也可以与 session 一起使用,因此需要在每次函数调用之前保存 session

基本上我希望能够立即在 2d session 中保存类似

session([ ['gamedata']['Cards'][] => getCards() ]);

现在给我这个错误

Cannot use [] for reading

即使是这段代码

session([ ['gamedata']['Cards'] => getCards() ]);

给我这个错误

Undefined index: Cards

最佳答案

仅供引用,session([key => value])\Session::put(key, value) 的快捷方式。如果要更新嵌套 session 值,可以在键中使用点作为路径分隔符。

如果你想替换 session 中的一个值,下面的每一行都会这样做:

session([ 'gamedata.Cards' => getCards() ]);
\Session::put('gamedata.Cards', getCards());

但是,如果 session 中的值是您要添加到的数组,则以下行可以解决问题:

\Session::push('gamedata.Cards', getCards());

不幸的是,没有使用 session() 帮助程序的这种语法的快捷方式。

关于php - 将二维数组保存到 Laravel session 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47044265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com