2013-01-18 5 views

risposta

6
class Sample_Task 
{ 
    public function create($args) { 
     $arg1 = $args[0]; 
     $arg2 = $args[1]; 
     // something here 
    } 
} 
+0

Grazie mille! – did1k

1

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.