【问题标题】:In Laravel, how can it be determined whether a request is being processed?在 Laravel 中,如何判断一个请求是否正在处理?
【发布时间】:2019-04-24 14:04:59
【问题描述】:

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

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

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

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

【问题讨论】:

  • app()->runningInConsole() 可能是你需要的
  • 完美!将其设为答案,我会将其标记为已回答。

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


【解决方案1】:

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

【讨论】:

  • 太棒了! "app()->runningInConsole() " 为测试、脚本和修补程序返回 true。
猜你喜欢
  • 1970-01-01
  • 2010-10-15
  • 2021-05-07
  • 2014-12-24
  • 2016-10-12
  • 2013-01-15
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多