我在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.'],
];
}
答案 0 :(得分:5)
您可以通过-
之前的--
字符来转义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);
}
或者你可以使用这样的交互式命令:
module Appointments
module Events
def say_alert
puts self.class::ALERT
end
end
end
class Appointment
include Appointments::Events
ALERT = "hello!"
end
Appointment.new.say_alert
答案 1 :(得分:0)
我一直处于同样的境地,这似乎是争论的问题。
询问交互式的另一个选择是使用选项,使用选项不会发生此问题。
例如
protected $signature = 'project:command {--profile=} {--tz=}';
然后
$profile_id = $this->option('profile', '');
$timezone = $this->option('tz', '+00:00');
对命令的调用将如下所示
artisan project:command --profile=1609 --tz=-04:00
此致