laravel 5.2
Quello che dovete fare è specificare l'argomento (o l'opzione, per esempio --opzione) nella proprietà $signature
come serie. Laravel indica questo con un asterisco.
Argomenti
esempio supponendo di avere un comando Artisan per immagini "di processo":
protected $signature = 'image:process {id*}';
Se poi fare:
php artisan help image:process
... laravel si prenderà cura di aggiungere la sintassi corretta in stile Unix:
Usage:
image:process <id> (<id>)...
Per accedere all'elenco, nel metodo handle()
, utilizzare semplicemente:
$arguments = $this->argument('id');
foreach($arguments as $arg) {
...
}
Opzioni
ho detto che ha funzionato per le opzioni di troppo, si utilizza {--id=*}
in $signature
invece.
Il testo della guida mostrerà:
Usage:
image:process [options]
Options:
--id[=ID] (multiple values allowed)
-h, --help Display this help message
...
Così l'utente dovrà digitare:
php artisan image:process --id=1 --id=2 --id=3
E per accedere ai dati in handle()
, utilizza:
$ids = $this->option('id');
Se ometti 'id', avrai tutte le opzioni, incluso booleani per 'tranquilla', 'verbose' ecc
$options = $this->option();
È possibile accedere all'elenco degli ID in $options['id']
Maggiori informazioni nel Laravel Artisan guide.
Grazie mille! – did1k