laravel - 我如何才能像 Laravel 中的 dd() 函数一样将变量数据作为字符串获取?
问题描述
我需要获取请求数据,但我无法使用 all() 方法获取 ip、fullUrl 和其他(仅打印输入值),但是当我使用“dd(request())”时,这会显示所有数据(我需要data 使用 dd 方法打印的内容,但就像要保存的字符串,但打印此数据的人除外)。我正在调试我的应用程序,所以我需要将每个请求数据保存在日志文件中,例如:
\Log::debug($request)
所以,
解决方案
您可以使用:
\Log::debug($request->toString());
或者你可以使用
\Log::debug((string) $request);
Laravel Request 对象来自Illuminate\Http\Request
which extendsSymfony\Component\HttpFoundation
公开以下代码:
public function __toString()
{
try {
$content = $this->getContent();
} catch (\LogicException $e) {
return trigger_error($e, E_USER_ERROR);
}
$cookieHeader = '';
$cookies = [];
foreach ($this->cookies as $k => $v) {
$cookies[] = $k.'='.$v;
}
if (!empty($cookies)) {
$cookieHeader = 'Cookie: '.implode('; ', $cookies)."\r\n";
}
return
sprintf('%s %s %s', $this->getMethod(), $this->getRequestUri(), $this->server->get('SERVER_PROTOCOL'))."\r\n".
$this->headers.
$cookieHeader."\r\n".
$content;
}
__toString()
在 PHP 中被认为是一种神奇的方法。
该
__toString()
方法允许一个类决定当它被视为字符串时它将如何反应。例如,什么 echo $obj; 将打印。此方法必须返回一个字符串,否则E_RECOVERABLE_ERROR
会发出致命级别的错误。
您可以在官方文档中阅读更多相关信息。
推荐阅读
- java - 我收到此错误:HTTP 状态 500 – 内部服务器错误(Eclipse、Tomcat8.5、Java)
- javascript - 多次加载javascript文件不起作用
- solr - Apache Solr Reindexing 无法处理大量记录
- javascript - 在 vanilla JavaScript 中将 LI 从一个 UL 移动到另一个?
- lightgbm - LightGBM:训练指标
- html - 组织 HTML 导致元素之间的空间
- python - Python合并多个子字符串
- java - 如何在特定时间触发图像的特定动画?
- python - Numpy 切片到给定的张量
- flutter - 尝试获取其大小时,Container 的键“消失”