Laravel Artisan 命令行:设定可选参数
设定可选参数
虽然大多数情况下,命令参数是必要的,但也有些时候,参数是可选的。下面我们介绍下如何定义可选参数。
定义语法
可选参数的定义语法与必要参数相似,只需在参数名后加个 ?
即表示是可选参数:
{参数名?}
可以给可选参数指定一个默认值:
{参数名=默认值}
注意:当给一个可选参数指定默认值时,就不用在参数名后加 ?
了。
也可包含参数说明:
{参数名? : 参数说明}
注意:
- 分隔
参数名
与参数说明
的冒号两边必须加空格; - 可选参数必须定义在所有必要参数之后。
命令类中设定可选参数
在命令类中,命令参数与命令名、命令选项都是在 signature
属性中设置的。
protected $signature = 'command:name {param1} {param2?}';
闭包命令中设定可选 参数
在闭包命令中,命令参数与命令名、命令选项都是在 Artisan::command
方法的第一个参数中设置的。
Artisan::command('command:name {param1} {param2?}', function ($param1) {
$param2 = $this->argument('param2');
});
注意:上面的例子中由于 param2
是个没有指定默认值的可选参数, 所以不能包含在闭包函数的参数中,而是在闭包函数内,通过 $this->argument()
方法来获取。