Change item of a session array in Laravel
Change item of a session array in Laravel
I'm using Laravel 5.6
, using session
array to store the user details after login.
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" =>
]
Now, when on some event, say update
mobile number after OTP verification I just want to update the mobile object.
update
If I do this Session::put("user_data['temporaryMobile']",'+91'.$request->get('new_number'));
, it will overwrite the entire object.
Session::put("user_data['temporaryMobile']",'+91'.$request->get('new_number'));
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)
$data = Session::get('user_data')
$data
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
2 Answers
2
you can use dot notation
Session::put('user_data.temporaryMobile','yourmobilenumber');
so this way you don't need to overwrite entire user data.
You should try this:
Session::put('user_data.temporaryMobile','yourmobilenumber');
OR
Session::push('user_data.temporaryMobile','yourmobilenumber');
Thanks for contributing an answer to Stack Overflow!
But avoid …
To learn more, see our tips on writing great answers.
Required, but never shown
Required, but never shown
By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy
@ankitpatel I think your comment should be an answer instead.
– Oluwatobi Samuel Omisakin
Sep 18 '18 at 7:40