首页 > 解决方案 > 在 Laravel 中,如何判断一个请求是否正在处理?

问题描述

我有一些可以从网络服务器或 Tinker/worker/脚本调用的代码。该代码需要确定是否正在从 Web 服务器调用。

我最初认为 request() 在没有请求时会为空,但事实并非如此。接下来我认为如果没有请求,request getHost 或 request getURI 会返回 null,但事实并非如此。

是否有一种优雅的方式来确定代码是否响应请求而运行?我可以使用中间件,但这似乎也不必要地复杂。

我能想出的最佳解决方案是检查 $request->header('User-Agent') 是否包含“Symfony”。这似乎很hacky。

标签: laravellaravel-5.4laravel-5.5laravel-5.6

解决方案


您可以使用它app()->runningInConsole()来检查请求是通过 Web 服务器还是通过控制台接收的。


推荐阅读