laravel怎么在CLI脚本中显示进度条和表格_laravel CLI脚本进度条与表格显示方法
发布时间 - 2025-11-13 00:00:00 点击率:次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();
fo
reach ($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
# 工具
# ai
# 邮箱
# symfony
# count
# foreach
# 封装
# select
# console
# function
# this
# ASCII
# table
# 进度条
# 命令行
# 执行情况
# 适用于
# 可以通过
# 自定义
# 可以使用
# 要先
# 再用
# 方法来
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
Laravel Docker环境搭建教程_Laravel Sail使用指南
JS碰撞运动实现方法详解
长沙做网站要多少钱,长沙国安网络怎么样?
Firefox Developer Edition开发者版本入口
如何在万网自助建站平台快速创建网站?
Laravel API资源类怎么用_Laravel API Resource数据转换
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Laravel如何使用Gate和Policy进行授权?(权限控制)
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Laravel如何自定义错误页面(404, 500)?(代码示例)
Laravel Session怎么存储_Laravel Session驱动配置详解
node.js报错:Cannot find module 'ejs'的解决办法
进行网站优化必须要坚持的四大原则
如何快速搭建自助建站会员专属系统?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
实例解析angularjs的filter过滤器
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
如何用PHP工具快速搭建高效网站?
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
JS去除重复并统计数量的实现方法
在centOS 7安装mysql 5.7的详细教程
手机网站制作与建设方案,手机网站如何建设?
如何在建站之星绑定自定义域名?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
详解Android图表 MPAndroidChart折线图
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
Python函数文档自动校验_规范解析【教程】
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
如何在服务器上三步完成建站并提升流量?
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Laravel模型事件有哪些_Laravel Model Event生命周期详解
Laravel如何记录自定义日志?(Log频道配置)
浅述节点的创建及常见功能的实现
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
微信小程序 闭包写法详细介绍
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
Python文本处理实践_日志清洗解析【指导】
🚀拖拽式CMS建站能否实现高效与个性化并存?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
Laravel观察者模式如何使用_Laravel Model Observer配置
如何在企业微信快速生成手机电脑官网?
Laravel如何实现用户密码重置功能?(完整流程代码)
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权

