2017-01-12 7 views
2

Ich möchte php artisan passport:client --password von Funktion ausführen.run artisan Befehl von PHP-Funktion

tryed ich Artisan::call('passport:client'); und Artisan::command('passport:client'); aber es undefined command

Hinweis zurück: Ich alredy Laravel Pass installieren haben und der Befehl funktioniert gut vom Terminal

+0

was ist die handwerkliche Ausgabe, ist der Befehl in der Liste? –

+0

dieser Befehl sollte Client erstellen und es hat Parameter (Name) –

+0

Haben Sie dieses Problem gelöst? Ich stoße darauf und ich bin verloren. –

Antwort

0

Von Laravel Docs

Route::get('/foo', function() { 
$exitCode = Artisan::call('email:send', [ 
    'user' => 1, '--queue' => 'default' 
]); 

// 
}); 
+0

Es gibt zurück "Es sind keine Befehle im Namespace" pass "definiert." –

+0

ist das richtig 'Artisan :: call ('pass: client', ['name' => 'ads', '--password' => 'default']);' –

4

Ich habe es gefunden, in boot() Methode der PassportServiceProvider gibt es eine Überprüfung, dass im Wesentlichen pr Ereignis wird von Artisan::call aufgerufen.

//PassportServiceProvider.php at line 37: 

if ($this->app->runningInConsole()) { 

$this->commands([ 
    Console\InstallCommand::class, 
    Console\ClientCommand::class, 
    Console\KeysCommand::class, 
]); 
... 
} 

Damit es mit dem allgemeinen Handwerksbefehl funktioniert, können wir diese Befehle selbst registrieren. irgendwo innerhalb der Boot-Methode von AuthServiceProvider vielleicht.

public function boot() { 
    $this->commands([ 
     Console\InstallCommand::class, 
     Console\ClientCommand::class, 
     Console\KeysCommand::class, 
    ]); 
} 

Jetzt können wir Artisan::call('passport:install') oder die anderen 2 Befehle aufrufen.

+0

Dies löste es auch für mich! – Jorre