2016-11-12 10 views
0

質問によると、ユーザーがWebブラウザのリンクをクリックすると、php artisanコマンドをバックグラウンドで実行する方法はありますか?例えばLaravel 5.3 - リンク/ボタンをクリックしてphp artisanコマンドを実行することは可能ですか?

私は、このボタンをクリックしたときに移行ファイルを移行するための私のアプリでボタンを作りたいと思います:

<a href="/migrate" class="btn btn-primary">Migrate</a> 

私は、バックグラウンドで

php artisan migrate 

を実行したいと思います。

これはどういうことですか?

+0

はい、私は推測することができます!ちょうどGoogleのphp(exec関数)またはsymphonyコンポーネントまたはanyotherの方法でターミナルコマンドを実行する方法 –

答えて

2

もちろん可能です! routes\web.phpファイル内に新しいルートを作成するだけです。それでは、単にArtisan::call()メソッドを呼び出すことができます。

たとえば、make-migrationにアクセスすると、請求書テーブルの移行ファイルを作成することができます。あなたはそうのようにこれを行うことができます:

Route::get('make-migration', function() { 
    Artisan::call('make:migration', [ 
     'name' => 'create_invoices_table', 
     '--create' => 'invoices', 
    ]); 

    return 'Create invoices migration table.'; 
}); 

またはあなたの場合は、移行を実行する場合:

Route::get('migrate', function() { 
    Artisan::call('migrate'); 

    return 'Database migration success.'; 
}); 

は、プログラムhereを職人のコマンドを実行している詳細についてはこちらをご覧ください。

このヘルプが必要です。

+0

これは非常に強力です! – lewis4u

関連する問題