从会话数组中拉出元素会删除 laravel 中的整个数组?
Pulling elements out of a session array deletes the whole array in laravel?
我正在尝试在会话变量中存储一组值。
因此,当我尝试添加变量时,我只需执行以下操作:
$request->session()->push('some.array', $id);
当我尝试将其拉出时,我会:
$request->session()->pull('some.array', $id);
我可以使用 push 方法添加尽可能多的元素,但是当我尝试拉取它时,它会删除整个数组。如何解决这个问题。如何只删除指定id的元素?
如果您仔细查看文档,您会发现
$request->session()->push('some.array', $id);
如果实际上在会话上创建一个名为 [array] 的子数组,那么当您 pull
使用
$request->session()->pull('some.array');
你实际上是在指示 laravel 删除整个子数组。
因此,要仅删除 some.array
的一个成员,您将必须
print_r( $request->session()->all() );
$tarray = $request->session()->pull('some.array');
unset( $tarray['an_item'] );
$request->session()->push('some.array', $tarray);
print_r( $request->session()->all() );
我正在尝试在会话变量中存储一组值。
因此,当我尝试添加变量时,我只需执行以下操作:
$request->session()->push('some.array', $id);
当我尝试将其拉出时,我会:
$request->session()->pull('some.array', $id);
我可以使用 push 方法添加尽可能多的元素,但是当我尝试拉取它时,它会删除整个数组。如何解决这个问题。如何只删除指定id的元素?
如果您仔细查看文档,您会发现
$request->session()->push('some.array', $id);
如果实际上在会话上创建一个名为 [array] 的子数组,那么当您 pull
使用
$request->session()->pull('some.array');
你实际上是在指示 laravel 删除整个子数组。
因此,要仅删除 some.array
的一个成员,您将必须
print_r( $request->session()->all() );
$tarray = $request->session()->pull('some.array');
unset( $tarray['an_item'] );
$request->session()->push('some.array', $tarray);
print_r( $request->session()->all() );