当我尝试向会话数组添加其他数据时,它会覆盖旧数据。有没有办法在不覆盖旧会话数据的情况下向会话数组添加多个值,还是让我逐个使用push?
例如:
session()->put([
'parent'=>[
'name'=>'jhon',
'surname'=>'doe',
]
]);
现在session()->all()
我得到:
[
"parent" => [
"name" => "jhon",
"surname" => "doe",
],
]
当我想用put添加其他值时,例如:
session()->put([
'parent'=>[
'gender'=>'male',
'phone'=>'000000',
]
]);
不,我是session()->all()
:
[
"parent" => [
"gender" => "male",
"phone" => "000000",
],
]
但我想:
[
"parent" => [
"name" => "jhon",
"surname" => "doe",
"gender" => "male",
"phone" => "000000",
],
]
那么如何在不触及旧数据的情况下将其他(多个)数据添加到现有会话数组中?
答案 0 :(得分:2)
您可以先读取数据,然后再修改并保存。举个例子:
$data = session('parent');
$data['gender'] = 'male';
$data['phone'] = '000000';
session(['parent' => $data]);
答案 1 :(得分:0)
您可以使用session()->push()
方法[{3}}
对于例如
1)使用session()->put()
session()->put([
'parent'=>[
'name'=>'jhon',
'surname'=>'doe',
]
]);
2)现在使用session()->push()
session()->push('parent',[
'gender'=>'male',
'phone'=>'000000',
]);
答案 2 :(得分:0)
感谢@AlexeyMezenin和@GautamPatadiya的回答我发现这种方式对我来说非常方便。如果这对你来说是错误的,或者你有更好的方法,请更正。
session()->put([
'parent'=>[
'name'=>'jhon',
'surname'=>'doe',
]
]);
然后将自己添加到新数组中,如:
session()->put([
'parent'=>[
'gender'=>'male',
'phone'=>'000000',
] + session('parent');
]);