我想保留每个请求中的一些数据,但我不想使用数据库,因为这些数据只是暂时的,所以...我在我的控制器中使用静态数组,
public static $aId = [];
当请求进来时,我将数据并将其推送到该数组,就像
一样public function saveId(Request $request){
$id = $request->id;
array_push(MyController::$aId,$id);
return var_dump(MyController::$aId);
}
但问题是,每个请求都会使该数组成为一个新数组,我总是得到一个只有一个数据的数组。请帮帮我。
答案 0 :(得分:1)
使用会话在多个请求中保留数据。
public function saveId(Request $request){
$id = $request->id;
$request->session()->push('aId', $id');
return print_r($request->session()->get('aId'), true);
}
答案 1 :(得分:0)
缓存或会话都适合您。创建一个唯一键,例如
$key = Auth::user()->id . '-aId';
Cache::put($key, $id, Carbon::now()->addMinutes(10));
或
Session::put($key, $id);
并在请求之间引用。用户ID不会更改,-aId
后缀将允许您保留会话中的内容。
修改强> 好的,所以你想让它在所有用户,会话等全球可用...
// 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