0

パッケージのコマンドを作成しています。

私のコンストラクタは次のとおりです。

public function __construct(\Artisan $artisan)
{
    parent::__construct();

    $this->artisan = $artisan;
}

$artisanもちろん、保護されたプロパティが存在します。

私のサービス プロバイダーregister()の方法では、コマンドを登録する方法をいくつか試しました。

初め:

$this->app['custom.command'] = $this->app->share(function ($app)
{
    return new CustomCommand(new \Artisan);
});
$this->commands('custom.command');

2番:

$this->app['custom.command'] = $this->app->share(function ($app)
{
    return $app->make('CustomCommand');
});
$this->commands('custom.command');

通常、動作するはずです。しかし、コマンドを実行すると、メソッドCall to undefined method Illuminate\Support\Facades\Artisan::call()で実行するとすぐに常にエラー メッセージが表示されます。$this->artisan->call('migrate')fire()

\Artisan::call('migrate')ただし、代わりに書くと、$this->artisan->call('migrate')すべてが正常に機能します。

誰かが私が間違ったことを知っていますか?

前もって感謝します。

4

1 に答える 1