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