php artisan 接收参数,Laravel Artisan 命令行:获取参数

问题

我如何在命令中获取用户输入的参数?

回答

不论是在命令类文件中,还是在闭包命令中,你都可用 argument 方法来获取用户输入的特定参数。

假设我们在命令类的 handle() 方法中要获取用户输入的 text 参数:

/**

* Execute the console command.

*

* @return mixed

*/

public function handle()

{

$text = $this->argument('text');

}

如果你想一次性获取所有的参数,可以调用 arguments 方法,它返回一个包含所有参数的数组:

$arguments = $this->arguments();

$this->info($arguments['text']);

注意:这里说的包含所有参数,是指包含所有你在创建命令时定义的参数,还包括一个 command 项,它的值是命令名。

不管是 argument 还是 arguments 方法,如果用户没有输入这个参数,有默认值的,返回默认值,否则返回 NULL。

在闭包命令中,除了象命令类那样通过 argument 和 arguments 方法来获取用户输入的参数外,还可以直接在闭包函数的参数列表中列出要使用的参数与选项:

方式一:

Artisan::command('hash:md5 {text} {--uppercase}', function () {

$text = $this->argument('text');

$uppercase = $this->option('uppercase');

$md5text = $uppercase ? strtoupper(md5($text)) : md5($text);

$this->info("md5('{$text}') = $md5text");

})->describe('Calculate the md5 hash of a text');

方式二:

Artisan::command('hash:md5 {text} {--uppercase}', function ($text, $uppercase) {

$md5text = $uppercase ? strtoupper(md5($text)) : md5($text);

$this->info("md5('{$text}') = $md5text");

})->describe('Calculate the md5 hash of a text');

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值