Laravel通过封装Symfony Console组件,提供进度条和表格输出功能。使用$this->withProgressBar()或createProgressBar()可显示处理进度,结合$this->table()方法能以ASCII表格展示数据,先输出待处理用户表格,再用进度条实时反馈执行情况,最后提示完成,提升CLI脚本交互性与可读性。

Laravel 在 CLI 脚本中提供了强大的输出组件,可以轻松实现进度条和表格的显示。这些功能基于 Symfony Console 组件,Laravel 进行了封装,使用起来非常方便。
Laravel 的命令类中可以通过 $this->output 或辅助方法来创建进度条。使用 $this->withProgressBar() 或直接调用 progress bar 实例。
示例:在自定义命令中显示处理进度
$users = User::all();
$bar = $this->output->createProgressBar(count($users));
$bar->start();
foreach ($users as $user) {
$user->update(['status' => 'processed']);
sleep(1); // 模拟处理时间
$bar->advance();
}
$bar->finish();
$this->info(''); // 换行输出完成信息
也可以使用更简洁的方式:
$this->withProgressBar($users, function ($user) {
$user->update(['status' => 'processed']);
sleep(1);
});
执行完成后,可添加完成提示:
$this->info('处理完成!');
Laravel 支持将数组数据以表格形式输出到命令行,适用于展示查询结果或统计数据。
使用 $this->table() 方法即可快速生成表格。
$headers = ['ID', '姓名', '邮箱', '状态'];
$users = User::select('id', 'name', 'email', 'status')->take(5)->get()->toArray();
$this->table($headers, $users);
输出效果为整齐对齐的 ASCII 表格,适合查看结构化数据。
有时需要先展示待处理数据,再显示进度。可以先输出表格,再运行进度条。
// 先显示将要处理的用户
$this->info('即将处理以下用户:');
$this->table(
['ID', '姓名', '邮箱'],
User::select('id', 'name', 'email')->whereIn('status', ['pending'])->get()->toArray()
);
// 开始处理并显示进度
$pendingUsers = User::where('status', 'pending')->get();
$this->withProgressBar($pendingUsers, function ($user) {
$user->update(['status' => 'done']);
sleep(1);
});
$this->info('全部完成!');
基本上就这些。利用 Laravel 提供的 CLI 输出工具,可以让命令行脚本更直观、更友好。进度条和表格不仅提升体验,也便于调试和监控任务执行情况。
以上就是laravel怎么在CLI脚本中显示进度条和表格_laravel CLI脚本进度条与表格显示方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号