web-dev-qa-db-ja.com

入力がコンソールからのものかどうかを確認します

私の見解の変数を以下と共有したいと思います:

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        \Schema::defaultStringLength(191);
        $customers = Customer::get();
        \View::share('customers', $customers);
    }
}

期待どおりに機能しますが、職人を介してテーブルを移行しようとすると、移行を開始する前にチェックされているため、customersのテーブルが見つからないというエラーがスローされます。だから私は次のようなものが必要です

if(!artisan_request) {
    //request to laravel is via web and not artisan
} 

しかし、ドキュメントには何も見つかりませんでした。

12
cre8

を使用して、コンソールで実行しているかどうかを確認できます。

app()->runningInConsole()

その下では、インターフェイスの種類を確認するだけです。

return php_sapi_name() == 'cli' || php_sapi_name() == 'phpdbg'

詳細については、 PHPドキュメントサイト をご覧ください。

22
Ian

アプリがコンソールで実行されているかどうかを検出するには、次のようにします。

if(App::runningInConsole())
{
  // app is running in console
}

参照してください illuminate/Foundation/Application.php:52

4
Mozammil