在控制器上处理时是否有一种获取数据的方法-Laravel PHP

时间:2019-03-04 14:48:31

标签: php laravel-5 controller

我在控制器上有一个功能,例如爬网。

我的控制器有时休眠 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写入数据库,但是在处理时我无法再次访问。

我的意思是, 我想在页面上实时显示进程状态。怎么可能?

对不起,我的英语不好...

1 个答案:

答案 0 :(得分:1)

一种解决方案是将其存储在cache中。

您可以像这样存储值:

Cache::put(['text' => $wantToPassText], 1);

第二个参数是要缓存的分钟(从Laravel 5.8开始,这是秒数)。

完成任务后,即可清除缓存键/值:

Cache::forget('text');

注意:您应该确保在控制器的顶部包括外观:

use Cache