php laravel进度条如何定义输出

relj7zay  于 2023-02-15  发布在  PHP
关注(0)|答案(1)|浏览(206)

我正在尝试从https://laravel.com/docs/5.4/artisan使用Laravel progress bar
但我得到这下面的错误

(1/1) ErrorException
Undefined property: App\Http\Controllers\ImportDeviceController::$output

下面是我的代码:

$users = \App\Users::all();

    $bar = $this->output->createProgressBar(count($users));

    foreach ($users as $user) {
        $this->performTask($user);

        $bar->advance();
    }

    $bar->finish();
    • 更新日期:**
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use App\Http\Helpers\GlobalHelper;
use Illuminate\Support\Collection;
use App\Http\Helpers\ImportDeviceHelper;
use Illuminate\Support\Facades\Redirect;
use App\Http\Controllers\ImportController;
use Excel;
use XmlParser;
use Storage;
use Symfony\Component\Console\Helper\ProgressBar;


class ImportDeviceController extends Controller
{

    public function __construct(Request $request)
    {

        $this->objGlobalHelper = new GlobalHelper;
        $this->objImportDeviceHelper = new ImportDeviceHelper($request);
        $this->objImportController = new ImportController($request);
    }

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */


    public function device()
    {
     $users = \App\Users::all();

    $bar = $this->output->createProgressBar(count($users));

    foreach ($users as $user) {
        $this->performTask($user);

        $bar->advance();
    }

    $bar->finish();

    exit;
 }
sqyvllje

sqyvllje1#

我不知道这是否还值得回答,但我看到这个帖子,我刚刚有同样的问题/问题之前,一个同事有善意的解释给我:所有的控制台/终端方法只能在控制台命令脚本的handle方法中使用。在我的例子中,我想在控制器中应用这个progressbar方法,这就是为什么没有定义“output”的原因!这个想法是使用一个支持或一个命令或服务从任何路由中去相关,并将其调用到一个命令脚本中,那么你将能够使用命令方法,如progressbars我的解释可能不是很准确/清楚,但我希望它可以帮助别人^^

相关问题