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

Php 带破折号的Laravel自定义命令参数,php,laravel,laravel-5,Php,Laravel,Laravel 5,我在Laravel5中得到了一个自定义命令,可以获取用户名和密码 一个用户的密码是以破折号开始的,类似于-819830219“,这使得laravel返回一个错误,说“不存在-8选项” 我尝试在引号之间设置密码,但仍然出现相同的错误 有没有一种方法可以传递以破折号开头的参数,而laravel不会将其理解为选项 protected function getArguments() { return [ ['username', InputArgument::REQUIRED,

我在Laravel5中得到了一个自定义命令,可以获取用户名和密码

一个用户的密码是以破折号开始的,类似于-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.'],
    ];
}

您可以在
-
字符前面加上
-
来转义该字符,如下所示:

php artisan command -- -819830219
或者,您可以使用如下交互式命令:

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

我也遇到过同样的情况,这似乎是一个争论的问题

除了询问interactive之外的另一个选项是使用选项,使用选项时不会出现此问题

比如说

protected$signature='project:command{--profile=}{--tz=}';

然后

$profile\u id=$this->option('profile','');
$timezone=$this->option('tz','+00:00');

对该命令的调用如下所示

artisan项目:命令--profile=1609--tz=-04:00


关于

您处理密码的确切代码是什么?这似乎是我在主要问题上添加的。逃逸破折号?