拉拉维尔 5.2
您需要做的是将$signature
属性中的参数(或选项,例如 --option)指定为数组。Laravel 用星号表示这一点。
论据
例如,假设您有一个 Artisan 命令来“处理”图像:
protected $signature = 'image:process {id*}';
如果你这样做:
php artisan help image:process
…Laravel 将负责添加正确的 Unix 风格的语法:
Usage:
image:process <id> (<id>)...
要访问列表,在handle()
方法中,只需使用:
$arguments = $this->argument('id');
foreach($arguments as $arg) {
...
}
选项
我说它也适用于选项,你用{--id=*}
in$signature
代替。
帮助文本将显示:
Usage:
image:process [options]
Options:
--id[=ID] (multiple values allowed)
-h, --help Display this help message
...
所以用户会输入:
php artisan image:process --id=1 --id=2 --id=3
要访问 中的数据handle()
,您可以使用:
$ids = $this->option('id');
如果省略“id”,您将获得所有选项,包括“安静”、“详细”等的布尔值。
$options = $this->option();
您可以访问 ID 列表$options['id']
Laravel Artisan 指南中的更多信息。