Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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
Php laravel作业完成时返回视图?_Php_Laravel_Laravel 5.4_Jobs - Fatal编程技术网

Php laravel作业完成时返回视图?

Php laravel作业完成时返回视图?,php,laravel,laravel-5.4,jobs,Php,Laravel,Laravel 5.4,Jobs,我已经注册了一个队列,我想在分派作业后返回视图。我试图实现的逻辑是: 单击按钮(方法将您带到控制器) 调度作业 返回加载屏幕 作业完成后,返回包含数据的视图 这就是我到目前为止所拥有的返回视图,它不起作用 这是我的代码: public function demoIndex(Request $request){ //Controller $text = $request->input('doc'); dispatch(new Do($text)); return

我已经注册了一个队列,我想在分派作业后返回视图。我试图实现的逻辑是:

  • 单击按钮(方法将您带到控制器)
  • 调度作业
  • 返回加载屏幕
  • 作业完成后,返回包含数据的视图
  • 这就是我到目前为止所拥有的返回视图,它不起作用

    这是我的代码:

    public function demoIndex(Request $request){ //Controller
    
        $text = $request->input('doc');
        dispatch(new Do($text));
    
        return view('demo/loading');  //loading screen
    }
    
    public function handle()
    {
        //queue job
       ...
    
        return view('demo/admin', ['search' => $search]);  //returning view (not working)
    }
    

    您需要在任务完成时触发事件,然后使用laravel echo捕捉te前端上的te事件,以便JavaScript可以在数据中加载或重定向到其他页面

    查看这些链接:


    您希望它做什么?队列处理程序不能真正返回视图。不能从作业返回视图。您可以调度作业,然后让作业在其完成时抛出事件,并在前端侦听该事件(这需要设置广播)。或者,您可以让作业设置某种“完成”标记,并使用ajax从加载屏幕定期检查状态。