Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在controller-Laravel PHP上进行处理时是否有获取数据的方法_Php_Laravel 5_Controller - Fatal编程技术网

在controller-Laravel PHP上进行处理时是否有获取数据的方法

在controller-Laravel PHP上进行处理时是否有获取数据的方法,php,laravel-5,controller,Php,Laravel 5,Controller,我在控制器上有一个类似爬网的功能 我的控制器有时会睡10秒钟,有时会消失 像这样: while ($someTrueFalse) { $data[]=$gettingdata; $wantToPassText="Received ".count($data)." - Sleeping 10 seconds"; if($someControl){ $someTrueFalse=false; }

我在控制器上有一个类似爬网的功能

我的控制器有时会睡10秒钟,有时会消失

像这样:

 while ($someTrueFalse) {
        $data[]=$gettingdata;

        $wantToPassText="Received ".count($data)." - Sleeping 10 seconds";

        if($someControl){
            $someTrueFalse=false;
        }

        sleep(10);
    }

    return view('any_view');
如何从任何视图访问
$WANTOPassText
变量

我试过了

setcookie('data',$wantToPassText,time()+60);
但我无法在控制器处理时访问。我只能在进程完成时访问

我尝试过,将数据库写入此
$WANTOPassText
,但在处理过程中无法再次访问

我是说, 我想在页面上写实时进程状态。怎么可能呢


对不起,我的英语不好…

解决方案可能是将其存储在
缓存中

可以按如下方式存储值:

Cache::put(['text' => $wantToPassText], 1);
第二个参数是要缓存的分钟数(从Laravel 5.8开始,现在是秒数)

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

Cache::forget('text');
注意:您应该确保在控制器的顶部包含外观:

use Cache

你想要实现什么?除非循环完成处理,否则无法访问您的视图。如果将
$WANTOPASSTEXT
从控制器传递到视图,则视图可以获取它。我想向用户显示等待时的处理过程。我可以使用jqueryajax方法。例如,我想向用户显示,“收到20个数据”。3秒后循环返回时显示“已接收40个数据”。我尝试在每次返回while循环时设置cookie,并尝试使用$\u cookie在另一个页面上阅读,但没有成功。Cookie只在控制器完成工作时设置。把它放在作业中,实现socket你能解释一下吗?用户上传一个文件,你想处理它,并向用户显示一些操作更新,不是吗?