Sometimes laravel set the new or update session in ajax requestion even you can print it like Session::all(); it will print the updated session but cannot update the session on fresh page, for eg. if a user update his information like display name picture or other information through ajax.
In this things have two major causes the first is use die in ajax and second thing is echo success message or something else, You must need to use return instead of echo or die. Here is I am showing both wrong ways
Wrong with DIE
if($update_userdata===true){ Session::put('userprofile_data',$update_userdata); die('success:user data updated'); } die('error: something went wrong, try again'); //THIS IS WRONG IT CANNOT UPDATE AND BRING OLD SESSION DATA ON PAGE RELOAD
Wrong with ECHO
if($update_userdata===true){ Session::put('userprofile_data',$update_userdata); echo 'success:user data updated'; } echo 'error: something went wrong, try again //THIS IS WRONG IT CANNOT UPDATE AND BRING OLD SESSION DATA ON PAGE RELOAD
Both above are wrong because headers set at this when you use echo string and if you use die it kill/exit script.
Right way to update session data
Use return won’t worry it cannot only return data this will show message and update the session data on reloading the page.
if($update_userdata===true){ Session::put('userprofile_data',$update_userdata); return 'success:user data updated'; } return 'error: something went wrong, try again //THIS IS WRONG IT CANNOT UPDATE AND BRING OLD SESSION DATA ON PAGE RELOAD
-
Well explained Thanks