Изменить элемент массива сеансов в Laravel - PullRequest
0 голосов
/ 18 сентября 2018

Я использую 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" => []
]

Теперь, когда на каком-то событии, скажем, update номер мобильного телефона после проверки OTP Iпросто хочу обновить мобильный объект.

Если я сделаю это Session::put("user_data['temporaryMobile']",'+91'.$request->get('new_number'));, он перезапишет весь объект.

Поэтому все, что я могу сделать, это $data = Session::get('user_data') и обновить $data массив и затем вернуть его в сеанс Session::put("user_data",$data)

Я надеюсь, что есть лучшее решение для этого, ища решение, где мы могли бы просто изменить элемент массива, не сохраняя данные в другой переменной.

TIA

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Вы должны попробовать это:

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

ИЛИ

Session::push('user_data.temporaryMobile','yourmobilenumber');
0 голосов
/ 18 сентября 2018

Вы можете использовать точечную запись

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

так что вам не нужно перезаписывать все данные пользователя.

...