私はLaravel 5.2を使用しています。私は2つの要求クラス:ApiRequests
とGetUserDetailsRequest
を持っています。ミドルウェアの終了メソッドのリクエストからメソッドを呼び出す
ApiRequests
はを返すメソッドshouldLogResponse()
を持っています。 GetUserDetailsRequest
はApiRequests
を上書きし、shouldLogResponse()
を上書きしてfalse
を返します。
$response_content = 'Response is not logged';
if ($request->shouldLogResponse()) {
$response_content = $response->getContent();
}
ApiLogger::request($request->getPathInfo(), $request->getContent(), $response_content);
$request
はGetUserDetailsRequest
クラス(私は推測)のインスタンスではありませんので、それが機能していないが:
また、私は彼のterminate()
方法で次のように持っているLoggingMiddleware
クラスを持っています。ミドルウェアで特定のリクエストのリクエストクラスを取得するにはどうすればよいですか?
編集:GetUserDetailsRequest
がコントローラで使用されています。
public function getUser(GetUserDetailsRequest $request) { //... }
LoggingMiddleware
はapi
グループで私のHttp\Kernel.php
に$middlewareGroups
に追加されます。このapi
グループは、すべてのAPIルートに適用されます。
あなたのクラスを登録してコール/インジェクトした場所や方法など、詳細を入力する必要があると思います。 –
ミドルウェアはシングルトンとして定義されていますか?終了メソッドが新しいインスタンスを実行しているので... –
@linktoahrefそれは期待通りに動作しています(私の検証ロジックがあります)。シモーネ・カブリノ、私はそうではないかと恐れている。どうやってやるの? –