Изменить элемент массива сеансов в Laravel

я использую 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)

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

ТИА

1

Решение

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

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

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

3

Другие решения

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

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

ИЛИ ЖЕ

Session::push('user_data.temporaryMobile','yourmobilenumber');
2

По вопросам рекламы [email protected]