я использую 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" => []
]
Теперь, когда на каком-то событии, скажем, update
номер мобильного телефона после проверки OTP Я просто хочу обновить мобильный объект.
Если я сделаю это Session::put("user_data['temporaryMobile']",'+91'.$request->get('new_number'));
, он будет перезаписывать весь объект.
Так что все, что я могу думать, это $data = Session::get('user_data')
& обновить $data
массив, а затем положить его обратно в сессию Session::put("user_data",$data)
Я надеюсь, что есть лучшее решение для этого, ища решение, где мы могли бы просто изменить элемент массива, не сохраняя данные в другой переменной.
ТИА
Вы можете использовать точечную запись
Session::put('user_data.temporaryMobile','yourmobilenumber');
Таким образом, вам не нужно перезаписывать все пользовательские данные.
Вы должны попробовать это:
Session::put('user_data.temporaryMobile','yourmobilenumber');
ИЛИ ЖЕ
Session::push('user_data.temporaryMobile','yourmobilenumber');