Laravel自定义命令参数带破折号

Pau*_*que 4 php laravel laravel-5

我在Laravel 5中获得了一个自定义命令,该命令获取了用户名和密码。

一个用户以破折号开头的密码(例如-819830219')使laravel返回错误,提示“ -8选项不存在。

我尝试将密码设置在引号之间,但仍然出现相同的错误。

有没有一种方法可以传递以laravel无法理解的破折号开头的参数?

protected function getArguments()
{
    return [
        ['username', InputArgument::REQUIRED, 'Partner\'s username.'],
        ['password', InputArgument::REQUIRED, 'Partner\'s password.'],
        ['origin', InputArgument::REQUIRED, 'Partner\'s origin code.'],
    ];
}
Run Code Online (Sandbox Code Playgroud)

Bjö*_*örn 6

您可以-通过在字符前添加字符来使其逃脱--

php artisan command -- -819830219
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用如下所示的交互式命令:

public function handle()
{
    $username = $this->ask('Enter username');
    $password = $this->secret('Enter password');
    $origin = $this->ask('Enter origin');
    $this->doSomething($username, $password, $origin);
}
Run Code Online (Sandbox Code Playgroud)