在Laravel中更改会话数组的项目

问题描述 投票:1回答:2

我正在使用Laravel 5.6,使用session数组在登录后存储用户详细信息。

user_date = array:19 [
  "userEmail" => "[email protected]"
  "username" => "userwebtest"
  "role" => "user"
  "gender" => "male"
  "profilePic" => "https://domain/public/images/male.jpg"
  "temporaryMobile" => null
  "communicationEmail" => "[email protected]"
  "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

php laravel session laravel-5.6 laravel-session
2个回答
3
投票

你可以使用点符号

Session::put('user_data.temporaryMobile','yourmobilenumber');

所以这样你就不需要覆盖整个用户数据了。


2
投票

你应该试试这个:

Session::put('user_data.temporaryMobile','yourmobilenumber');

要么

Session::push('user_data.temporaryMobile','yourmobilenumber');
© www.soinside.com 2019 - 2024. All rights reserved.