Php 带破折号的Laravel自定义命令参数
我在Laravel5中得到了一个自定义命令,可以获取用户名和密码 一个用户的密码是以破折号开始的,类似于-819830219“,这使得laravel返回一个错误,说“不存在-8选项” 我尝试在引号之间设置密码,但仍然出现相同的错误 有没有一种方法可以传递以破折号开头的参数,而laravel不会将其理解为选项Php 带破折号的Laravel自定义命令参数,php,laravel,laravel-5,Php,Laravel,Laravel 5,我在Laravel5中得到了一个自定义命令,可以获取用户名和密码 一个用户的密码是以破折号开始的,类似于-819830219“,这使得laravel返回一个错误,说“不存在-8选项” 我尝试在引号之间设置密码,但仍然出现相同的错误 有没有一种方法可以传递以破折号开头的参数,而laravel不会将其理解为选项 protected function getArguments() { return [ ['username', InputArgument::REQUIRED,
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
关于您处理密码的确切代码是什么?这似乎是我在主要问题上添加的。逃逸破折号?