Laravel artisan getArguments 如何触发?

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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年前 评论

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