【发布时间】:2018-10-04 13:00:27
【问题描述】:
我有一个中间件来记录所有请求和响应(用于 API)。但是终止方法响应对象中没有显示响应。
class Logger
{
public function handle($request, Closure $next)
{
return $next($request);
}
public function terminate($request, $response)
{
Log::info('ApiLog done===========================');
Log::info('URL: ' . $request->fullUrl());
Log::info('Method: ' . $request->getMethod());
Log::info('IP Address: ' . $request->getClientIp());
Log::info("Data: ",[$request->all()]);
// Log::info("Query String: ", [$request->query()]);
Log::info("Response".$response->getContent());
}
}
但是 $response->getContent() 返回 null。 首先,我尝试仅使用句柄处理请求并获取响应,然后使用记录它
public function handle($request, Closure $next)
{
$response = $next($request);
Log::response("",[$response])
return $response;
}
但对象不包含正文。它只有状态和标题信息。 您能帮我获取响应正文吗
【问题讨论】:
-
我现在尝试终止我的项目,它会在您使用它时打印出整个主体。你有在
app/Http/Kernel.php注册的中间件作为路由还是全局中间件? -
注册为middlewareGroup
-
然后在路由中使用该中间件进行一组路由
标签: laravel laravel-5.4