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();

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  # 工具  # 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实现用户授权