環境
PHP バージョン 8
Laravel バージョン 8.25.0
起きている現象
エラー時はabort関数を使用して、処理を中断するプログラムがあります。
PHP
1 ルーティング:http://localhost:8000/test 2 public function test(){ 3 $this->accessError(); 4 } 5 6 private function accessError() 7 { 8 abort('404'); 9 }
画面からこのルーティングをたどって accessError() を実行すると、下記画面のようになります。
次に、exit()関数を使った場合は以下の通りです。
PHP
1 ルーティング:http://localhost:8000/test 2 public function test(){ 3 $this->accessError(); 4 } 5 6 private function accessError() 7 { 8 exit("errorororo"); 9 }
最後に、headerにcontent typeを付与してみた場合です。
PHP
1 ルーティング:http://localhost:8000/test 2 public function test(){ 3 $this->accessError(); 4 } 5 6 private function accessError() 7 { 8 header("Content-Type: application/json; charset=utf-8"); 9 exit("errorororo"); 10 }
分からないこと
- Laraveに標準搭載されている404画面は下記図のようなものだとイメージしていました。
しかし私の環境では文字化けしてしまいました。なぜなのでしょうか?
0. なぜJSONでもない文字をexit()で返しているのに、header(ContentType:JSON)にするとうまく表示されるのでしょうか?
→「Content-Type: text/html; charset=UTF-8」では文字化けしました。
ご教授いただければ幸いです。
あなたの回答
tips
プレビュー