在 Laravel 中更改会话数组的项目
Change item of a session array in Laravel
我正在使用 Laravel 5.6
,使用 session
数组来存储登录后的用户详细信息。
user_date = array:19 [
"userEmail" => "user@user.com"
"username" => "userwebtest"
"role" => "user"
"gender" => "male"
"profilePic" => "https://domain/public/images/male.jpg"
"temporaryMobile" => null
"communicationEmail" => "user@user.com"
"userId" => "---"
"registrationDate" => "2018-08-22T07:37:59.603Z"
"emailVerified" => false
"__v" => 0
"mobile" => "---"
"cart" => []
"socialLinks" => []
]
现在,在某些活动中,在 OTP 验证后说 update
手机号码我只想更新手机对象。
如果我这样做 Session::put("user_data['temporaryMobile']",'+91'.$request->get('new_number'));
,它将覆盖整个对象。
所以我能想到的就是 $data = Session::get('user_data')
并更新 $data
数组,然后将其放回会话 Session::put("user_data",$data)
我希望有一个更好的解决方案,寻找一个我们可以只改变数组项而不将数据存储在不同变量中的解决方案。
TIA
你可以使用点符号
Session::put('user_data.temporaryMobile','yourmobilenumber');
所以这样您就不需要覆盖整个用户数据。
你应该试试这个:
Session::put('user_data.temporaryMobile','yourmobilenumber');
或
Session::push('user_data.temporaryMobile','yourmobilenumber');
使用 会话 面对:
Session::put('user_data.temporaryMobile','yourmobilenumber');
使用全局 session() :
您可以覆盖多个项目
$user= session('user_data');
$user['temporaryMobile'] = 'yourmobilenumber';
session(['user_data'=>$user]);
我正在使用 Laravel 5.6
,使用 session
数组来存储登录后的用户详细信息。
user_date = array:19 [
"userEmail" => "user@user.com"
"username" => "userwebtest"
"role" => "user"
"gender" => "male"
"profilePic" => "https://domain/public/images/male.jpg"
"temporaryMobile" => null
"communicationEmail" => "user@user.com"
"userId" => "---"
"registrationDate" => "2018-08-22T07:37:59.603Z"
"emailVerified" => false
"__v" => 0
"mobile" => "---"
"cart" => []
"socialLinks" => []
]
现在,在某些活动中,在 OTP 验证后说 update
手机号码我只想更新手机对象。
如果我这样做 Session::put("user_data['temporaryMobile']",'+91'.$request->get('new_number'));
,它将覆盖整个对象。
所以我能想到的就是 $data = Session::get('user_data')
并更新 $data
数组,然后将其放回会话 Session::put("user_data",$data)
我希望有一个更好的解决方案,寻找一个我们可以只改变数组项而不将数据存储在不同变量中的解决方案。
TIA
你可以使用点符号
Session::put('user_data.temporaryMobile','yourmobilenumber');
所以这样您就不需要覆盖整个用户数据。
你应该试试这个:
Session::put('user_data.temporaryMobile','yourmobilenumber');
或
Session::push('user_data.temporaryMobile','yourmobilenumber');
使用 会话 面对:
Session::put('user_data.temporaryMobile','yourmobilenumber');
使用全局 session() :
您可以覆盖多个项目
$user= session('user_data');
$user['temporaryMobile'] = 'yourmobilenumber';
session(['user_data'=>$user]);