0
我的Laravel應用程序的一部分使用cli來執行批處理。我正在設法建立一個進度條,以提供有用的信息,告訴您在這個過程中有多遠。我正在做批處理的一件事是地址。我想格式化它有點類似於此:具有可讀多行消息/信息的CLI進度條
Processing addresses...
Local Shopping Mall
123 Fake street
Cityville, USA
12345
4/378 [>---------------------------] 1%
第一個地址後,我想以後移動光標回權「處理的地址...」,我想覆蓋舊地址與新的地址。
現在,我得到這個:
Processing addresses...
124 Fake street
Cityville, USA
12345
125 Fake street
Cityville, USA
12345
126 Fake street
Cityville, USA
12345
127 Fake street
Cityville, USA
12345
4/378 [>---------------------------] 1%
這裏的我使用的是(略有修改)代碼:
public function handle()
{
$this->info('Processing addresses...');
$addresses = \App\Address::all();
$bar = $this->output->createProgressBar(count($addresses));
foreach ($addresses as $address) {
$bar->clear();
$this->info("\r" . $this->_getFormattedAddress($address));
$bar->advance();
sleep(1);
}
}
private function _getFormattedAddress(\App\Address $address){
$out = "";
$out .= $address->address1 . "\n";
$out .= $address->address2 . "\n";
$out .= $address->city . "\n";
$out .= $address->region . "\n";
$out .= $address->iso_code . "\n";
$out .= $address->postal_code . "\n";
return $out;
}