Laravel artisan getArguments 如何触发?

artisan注册一个命令,传入参数必须是指定的几个,一直没办法触发getArguments方法,有谁知道的请指教以下,谢谢。
例 php artisan service arg
arg 只能是 start | stop | restart

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 13
protected $signature = 'service {type} ';
...
public function handle()
{
    $type = $this->argument('type');
}

這是 Command 的 class

6年前 评论

@jl9404 type这个参数如何限制输入几种呢?

6年前 评论

@klgd 不是,文档我看了。
我想要的目的是,参数param1,只能输入one, two, three,我查了下只有getArguments可以做到,InputOption::VALUE_REQUIRED,必须包含某个指定的值。

6年前 评论

@yadgen 那你可以按1楼的方式获取输入的参数值,然后判断一下是不是你想要的值

6年前 评论

@klgd 这个是代码逻辑控制,我看了laravel文档,自带的,想用用看。

6年前 评论
leo

@yadgen 翻了下文档,貌似没有看到有说这个功能

6年前 评论

@leo 4.几是有的。

6年前 评论

現在都 5.4 了 用 if 邏輯控制就好了
getArguments 在 5.1 已經沒有了
https://mattstauffer.co/blog/creating-arti...

6年前 评论

猜测是只想限定命令后面的参数吧,参考代码:

/**
 * The name and signature of the console command.
 *
 * @var string
 */
protected $signature = 'service
    {arg}
';

public function handle()
{
    if (!in_array($this->argument('arg'), ['one', 'two', 'three'])) {
        throw new RuntimeException();
    }

    // $this->argument('arg')
}
6年前 评论

@jl9404 这样子,难道没用了,谢谢。

6年前 评论

@扣丁禅师 嗯,这样我是知道的,谢谢回复。

6年前 评论

楼主解决了吗?我也遇到了同样的问题

4年前 评论

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