Laravelでアプリケーションを作っていて、メールを送信するArtisanコマンドを作成したのですが、
何故かCLIからコマンド実行すると、メールテンプレートに表示する画像にアクセス出来ない、というエラーが出ました。
そのため、テスト用にメール送信ボタンを作り、ボタンをクリックするとメール送信用のコマンドが実行されるようにしました。
その時に、コントローラーからArtisanコマンドを実行する方法を調べたのでメモしておきます。
結論(コード)
コマンドに渡すパラメータが無ければ以下ようなコードをコントローラー等コマンドを実行したい場所に記述すればOK.
use Artisan;//エイリアスに登録しいる場合
//use Illuminate\Support\Facades\Artisan;//エイリアスに登録して無い場合
Artisan::call('matching:email');//matching:emailはコマンド名
コマンドにパラメータを渡したければ以下のようにパラメータ名と値の配列を第2引数に渡します。
Artisan::call('matching:email',['param1'=> 'value1','param2'=>'value2',...]);