ミドルウェアからコードが実行されているかどうかを検出する方法はありますか?私は日付変換のためにどこからでも呼ばれるヘルパーを持っています。そのヘルパーでは、私はルート名\Route::current()->getName()
を確認するか、コンソール\App::runningInConsole()
から実行しているかどうかを調べます。Laravelのミドルウェアから実行中であることを検出する場合
私のミドルウェアはヘルパーを呼び出すとき\Route::current()
がnull
ているので、私は\Route::current()->getName()
でエラーを取得するには、コードが私のミドルウェアから実行された場合を知る方法はありますか? おかげ
問題解決私は、私はあなたの助け
ためprotected $dates = ['trial_ends_at', 'ends_at'];
おかげで問題レジ係とミドルウェアを統合していることは、固定しまった、と日付を設定するには、私のtimezonehelperに行く防ぐために使用していた
なぜそれをしますか?私はおそらく実行モード(コンソールまたはHTTP)を検出するためにヘルパーに引数を渡します。 –
私のヘルパーには、 '\ Route :: current() - > getName()'をチェックする条件がたくさんあり、ミドルウェアがヘルパーに到達すると、現在のルートは\ Route :: current()です。 nullなので、 '\ Route :: current() - > getName()'でエラーが発生します。ミドルウェアから呼び出しているかどうかをチェックするための条件を追加できます – user3489502
これは実際にあなたのコードに最適なデザインがないと言っています。それでもいくつかのシナリオであっても、このヘルパーのパラメータを使用して、使用するモードを特定し、そのパラメータを任意の値を持つことができるintパラメータにすることをお勧めします。 –