Laravelではviewをresponseとして返す幾つかの方法があります。
\Response::view('view.template', $param) # 方法1
response()->view('view.template', $param) # 方法2
view('view.template', $param) # 方法3
方法3が一番短くて、うまく行きます。
そして、responseにheader情報を入れましょう。
view('view.template', $param)->header('hello', 'world')
上記のコードはエラーになります。viewにはheaderメソッドがないです。
大丈夫です。ドキュメントにはもっと強いwithHeadersメソッドがあるって書いてます(実際は私の理解が間違ってます)。
じゃ早速使ってみよう。
https://laravel.com/docs/5.3/responses
view('view.template', $param)->withHeaders([
'hello' => 'world',
])
エラーがなくなりました。
責任を持って、headerが設定されているのかを見ったら、されてないです。
ソースコードを見ったら、上記のコードはheader設定とは全く関係なく、viewに値を渡すだけです。
viewでwithXXXXを利用して値渡す機能ってそもそも要らないんじゃないかと思います。
結論は、responseにheaderを設定したい場合は、以下のコードを使うのが正しいです。
\Response::view('view.template', $param)->header(...)
\Response::view('view.template', $param)->withHeaders(...)
response()->view('view.template', $param)->header(...)
response()->view('view.template', $param)->withHeaders(...)