I’m using Laravel 5.6
, using session
array to store the user details after login.
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" => [] ]
Now, when on some event, say update
mobile number after OTP verification I just want to update the mobile object.
If I do this Session::put("user_data['temporaryMobile']",'+91'.$request->get('new_number'));
, it will overwrite the entire object.
So all I can think of doing is $data = Session::get('user_data')
& update the $data
array and then put it back to the session Session::put("user_data",$data)
I hope there’s a better solution to this, looking for a solution where we can just alter the array item without storing the data in different variable.
TIA
Advertisement
Answer
you can use dot notation
Session::put('user_data.temporaryMobile','yourmobilenumber');
so this way you don’t need to overwrite entire user data.