Php 如何跨不同的路由请求传递大型数据集-Laravel

Php 如何跨不同的路由请求传递大型数据集-Laravel,php,laravel,Php,Laravel,这个问题可能还不清楚。这是解释。假设我: 路由文件: Route::get('testing', 'someController@functionOne'); Route::get('testingtwo', 'someController@functiontwo'); 控制器文件: public function functionOne() { $this->data = generateReallyBigArray(); return redirect('testingtwo

这个问题可能还不清楚。这是解释。假设我:

路由文件:

Route::get('testing', 'someController@functionOne');
Route::get('testingtwo', 'someController@functiontwo');
控制器文件:

public function functionOne() {
  $this->data = generateReallyBigArray();
  return redirect('testingtwo');
}
public function funtionTwo() {
  // Here $this->data is lost. obviously 'coz this controller file got reinstantiated for @functionTwo
 return view('someview', ['data' => $this->data]);
}
$this->data
在点击
testingtwo
时丢失。如何跨不同的路由请求传递此数据?或者如果有其他的方法

我正在考虑这样做:

public function functionOne() {
  $this->data = 'somedata';
  return $this->functionTwo();
}
public function funtionTwo() {
  // Here $this->data is lost. obviously 'coz this controller file got reinstantiated for @functionTwo
 // even this doesn't work. Exception: Method get does not exist
 return Route::get('testingtwo', function() {
     return view('someview', ['data' => $this->data]);
 });
}
用于通过会话发送数据-

public function functionOne() {
   $this->data = 'somedata';
   return redirect('testingtwo')->with('data', $this->data);
}
或者,您也可以在下次请求时使用这些数据

$request->session()->flash('data', $this->data);
最好的办法是 特征

在你的控制器里写

use Data;
您可以在控制器上使用特性 或 您可以通过以下方式访问控制器方法:

app('App\Http\Controllers\controllerName')->getDataFunction();

这会起作用,但就代码组织而言,这是不好的(记住为您的ControllerName使用正确的名称空间)

$This->data不是一些短消息,它可能是必须显示的巨大数据。是否可以使用会话来实现这一点…而不是发送所有内容,您可以发送id,然后重新生成当您说大数据时,我们谈论的是多大?兆字节?千兆字节?Terrabytes?每个案例都有一个完全不同的答案。一个至少有50个列表项的数组显示每个列表项大吗?我知道这些信息必须存储,但只是暂时的。在这种情况下,如何利用会话表或redis。我不想使用php会话好吧,让我们再试一次。每个列表项占用的内存大小(MB)。
app('App\Http\Controllers\controllerName')->getDataFunction();