我在控制器上有一个功能,例如爬网。
我的控制器有时休眠 10秒,有时消失。
赞:
while ($someTrueFalse) {
$data[]=$gettingdata;
$wantToPassText="Received ".count($data)." - Sleeping 10 seconds";
if($someControl){
$someTrueFalse=false;
}
sleep(10);
}
return view('any_view');
如何从任何视图访问$wantToPassText
变量?
我尝试过
setcookie('data',$wantToPassText,time()+60);
但是在控制器处理时我无法访问。我只能在过程完成后才能访问。
我尝试过将此$wantToPassText
写入数据库,但是在处理时我无法再次访问。
我的意思是, 我想在页面上实时显示进程状态。怎么可能?
对不起,我的英语不好...
答案 0 :(得分:1)
一种解决方案是将其存储在cache
中。
您可以像这样存储值:
Cache::put(['text' => $wantToPassText], 1);
第二个参数是要缓存的分钟(从Laravel 5.8开始,这是秒数)。
完成任务后,即可清除缓存键/值:
Cache::forget('text');
注意:您应该确保在控制器的顶部包括外观:
use Cache