I want to keep some data from every request but I don't want to use database , because these data just keep temporary , so...I use a static array in my controller,
public static $aId = [];
and when request come in , I take the data and push it to that array , just like
public function saveId(Request $request){
$id = $request->id;
array_push(MyController::$aId,$id);
return var_dump(MyController::$aId);
}
But problem is , every request will make that array become a new array , I always get an array which only have one data. Please help me.
Either the cache or session would work for you. Create a unique key, such as
$key = Auth::user()->id . '-aId';
Cache::put($key, $id, Carbon::now()->addMinutes(10));
or
Session::put($key, $id);
and reference that between requests. The user id will not change and the -aId
suffix will allow you to keep what you have in the session already.
edit ok so you want it globally available across all users, sessions, etc...
// assuming an array has already been set in cache key 'request-ids'...
$id = $request->id;
Cache::forever('request-ids', array_push($id,Cache::get('request-ids')));
https://laracasts.com/discuss/channels/laravel/is-it-possible-to-share-cache-between-users