LoginSignup
9
7

More than 5 years have passed since last update.

Laravel responseにheader設定する方法とトラップ

Last updated at Posted at 2017-02-01

Laravelではviewをresponseとして返す幾つかの方法があります。:clap:

\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メソッドがあるって書いてます(実際は私の理解が間違ってます)。
じゃ早速使ってみよう。:relaxed:
https://laravel.com/docs/5.3/responses

view('view.template', $param)->withHeaders([
    'hello' => 'world',
])

エラーがなくなりました。:clap:
責任を持って、headerが設定されているのかを見ったら、されてないです。:scream:
ソースコードを見ったら、上記のコードは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(...)
9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7