Artisan的一个小问题

我的一个命令如果要定时运行,但是命令里面需要交互,输入5,这个该怎么写呢

Artisan的一个小问题

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

只能从命令代码开始改造了 给命令加个可选参数

 protected $signature = 'main {--key= :  步骤}';

判断是否有可选参数并等于特定值5,有的话,直接运行,否则开始选择

public function handle()
    {
//        $this->productionCheckHint();


        $exit = 'no';
        do {
            $k = $this->option('key');
            if ($k && $k == 5) {
                $option = '网站健康检查';
            } else {
                $option = $this->choice('请选择功能', [
                    '清除系统缓存',
                    '新建商城用户/修改商城用户',
                    '业务通知',
                    '网站维护(关闭网站)',
                    '网站维护(开启网站)',
                    '网站健康检查',
                    '创建Rest风格资源控制器',
                    '上线网站初始化(仅供使用一次,重复使用将导致您的数据全部丢失)',
                    '测试环境一键部署',
                    '备份数据库',
                ]);
            }
            $this->line('正在为您链接 ' . $option);
            switch ($option) {
                case '清除系统缓存':
                    Artisan::call('optimize:clear');
                    $message = '系统缓存已经清除!';
                    break;
1周前 评论
讨论数量: 4

新建一个命令去执行对应任务

1周前 评论
chowjiawei (楼主) 1周前
1周前 评论
chowjiawei (楼主) 1周前

只能从命令代码开始改造了 给命令加个可选参数

 protected $signature = 'main {--key= :  步骤}';

判断是否有可选参数并等于特定值5,有的话,直接运行,否则开始选择

public function handle()
    {
//        $this->productionCheckHint();


        $exit = 'no';
        do {
            $k = $this->option('key');
            if ($k && $k == 5) {
                $option = '网站健康检查';
            } else {
                $option = $this->choice('请选择功能', [
                    '清除系统缓存',
                    '新建商城用户/修改商城用户',
                    '业务通知',
                    '网站维护(关闭网站)',
                    '网站维护(开启网站)',
                    '网站健康检查',
                    '创建Rest风格资源控制器',
                    '上线网站初始化(仅供使用一次,重复使用将导致您的数据全部丢失)',
                    '测试环境一键部署',
                    '备份数据库',
                ]);
            }
            $this->line('正在为您链接 ' . $option);
            switch ($option) {
                case '清除系统缓存':
                    Artisan::call('optimize:clear');
                    $message = '系统缓存已经清除!';
                    break;
1周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!