title: Laravel 5 command - Mandatory options
body: <p>I am trying to write a laravel command but I can't have the options to be mandatory.</p>
  
  <p>I do understand that the concept of option is being "optional" but I'd like to have a command in which it is clear which input you are inserting and in no particular order.</p>
  
  <p>i.e. 
  I would like to achieve this, with par2 and par 2 mandatory</p>
  
  <pre><code>$command-abc --par1=value1 --par2=value2
  </code></pre>
  
  <p>Instead of:</p>
  
  <pre><code>$command-abc value1 value2
  </code></pre>
  
  <p>So far this is the signature I used:</p>
  
  <pre><code>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}';
  </code></pre>
  
  <p>Following the Laravel documentation (<a href="https://laravel.com/docs/5.1/artisan" rel="nofollow">https://laravel.com/docs/5.1/artisan</a>) and this guide: <a href="http://code.tutsplus.com/tutorials/your-one-stop-guide-to-laravel-commands--net-30349" rel="nofollow">http://code.tutsplus.com/tutorials/your-one-stop-guide-to-laravel-commands--net-30349</a> it seemed that overwriting the getOptions method was doing the trick, but it is not working for me.</p>
  
  <pre><code>/**
   * 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')
      );
  }
  </code></pre>
  
  <p>Any ideas?</p>