Laravel Artisan 命令行:获取参数
在Laravel中,你可以使用Artisan命令行接口来创建自定义命令,并获取命令行参数。参数可以是必需的或可选的,并可以有默认值。以下是一个简单的例子,展示了如何在Laravel Artisan命令中获取参数:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class GreetCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'greet:name {name?}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Greet a user by name';
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$name = $this->argument('name');
if ($name) {
$this->info("Hello, {$name}!");
} else {
$this->error('No name provided!');
}
return 0;
}
}
在这个例子中,greet:name
是命令名称,{name?}
定义了一个可选的参数。通过 $this->argument('name')
获取参数的值。如果没有提供参数,它将是 null
。
要使用这个命令,你需要注册它。打开 app/Console/Kernel.php
文件,在 $commands
数组中添加新命令类的引用:
protected $commands = [
// ...
Commands\GreetCommand::class,
];
现在,你可以在命令行中运行 php artisan greet:name [name]
来使用这个命令,其中 [name]
是你要传递的参数。如果没有提供名字,它将显示错误消息。
评论已关闭