Php Laravel 5命令-强制选项

Php Laravel 5命令-强制选项,php,laravel-5,laravel-artisan,Php,Laravel 5,Laravel Artisan,我正在尝试编写一个laravel命令,但是我没有强制的选项 我确实理解选项的概念是“可选的”,但我希望有一个命令,可以清楚地知道您要插入哪些输入,并且没有特定的顺序 i、 e。 我想做到这一点,PAR2和PAR 2强制性 $command-abc --par1=value1 --par2=value2 而不是: $command-abc value1 value2 到目前为止,这是我使用的签名: protected $signature = 'dst-comparison:analyse

我正在尝试编写一个laravel命令,但是我没有强制的选项

我确实理解选项的概念是“可选的”,但我希望有一个命令,可以清楚地知道您要插入哪些输入,并且没有特定的顺序

i、 e。 我想做到这一点,PAR2和PAR 2强制性

$command-abc --par1=value1 --par2=value2
而不是:

$command-abc value1 value2
到目前为止,这是我使用的签名:

protected $signature = 'dst-comparison:analyse
                        {--client : Client Name}
                        {--clientId : Client ID}
                        {--recordingId : Client Recording ID}
                        {--CSVFile : Path to the downloaded CSV file from Spotify analytics}
                        {--dataUpdateTo=null : CSV Data will be truncated from this date onwards}';
遵循Laravel文档()和本指南:覆盖getOptions方法似乎可以达到目的,但对我来说不起作用

/**
 * Get the console command options.
 *
 * @return array
 */
protected function getOptions()
{
    return array(
        array('client', null, InputOption::VALUE_REQUIRED, 'Client Name'),
        array('clientId', null, InputOption::VALUE_REQUIRED, 'Client ID'),
        array('recordingId', null, InputOption::VALUE_REQUIRED, 'Client Recording ID'),
        array('CSVFile', null, InputOption::VALUE_REQUIRED, 'Path to the downloaded CSV file from Spotify analytics'),
        array('dataUpdateTo', null, InputOption::VALUE_OPTIONAL, 'CSV Data will be truncated from this date onwards')
    );
}

有什么想法吗?

我想你必须自己处理强制性输入。查看各种输出函数
$this->error(…)
,并检查是否提供了所有必要的输入
$this->option('client')(按照@Kjell的建议,自己验证选项。正如您所说,选项是可选的。