如何使用Illuminate \ Http \ Request添加请求数据以支持电子邮件;

时间:2018-06-03 19:38:50

标签: php laravel debugging laravel-5

我在我的应用中创建了“请求支持”联系表单(使用模态)。添加/附加$request变量转储的最佳/最干净方法是什么? (PHP的全局变量,会话数据,......)因为我相信这些数据可以帮助我调试很多。

我尝试了什么:

SupportController:

public function send(Request $request)
    {
        Mail::send('emails.support', ['request' => $request], function ($message) use ($request) {
            $message->from($request->user()->email, $request->user()->name);
            $message->subject(trans('Support request'));
        });

        $request->session()->flash('flash_message', __('Message sent!'));
        return redirect()->back();
    }

emails.support.blade

{{ print_r($request) }}

但是我收到内存大小耗尽的错误消息(即使我将限制更改为1GB后)。

所以可能有更好的方法来做到这一点。也许也是一种更易阅读的方式。

1 个答案:

答案 0 :(得分:1)

不要转储整个请求对象,而是选择您认为有助于调试的内容。例如:

All:
@foreach($request->all() as $key => $val)
   {{ $key }} = {{ $val }}
@endforeach
<hr>
Route Name: {{ $request->route()->getName() }}
Route Action: {{ $request->route()->getAction() }}
Route Method: {{ $request->route()->getMethod() }}
<hr>
Headers:
@foreach($request->headers->all() as $key => $val)
   {{ $key }} = {{ $val }}
@endforeach

Etc等。

或者您可以使用Guzzle的str方法序列化请求或响应对象。