@toshiyuki83 Webサービス更新履歴&技術情報

PHP(FuelPHP)とかJavaScript(TitaniumMobile)とか、Webサービス情報など

FuelPHPで任意のViewにステータスコードを設定する方法 #fuelphp

Fuelphpで既存に用意されている404を使わずに任意のViewにステータスコードを設定させたいときの方法メモ。

 

Fuelphp1.4で404や500以外にも様々なステータスコードを返すことをしたいと思いました。 当初はここの記事を参考にして、ステータスコードをheader関数で設定しようとしましたが、どのステータスコードを設定しても、サーバー上で500のエラーが出る状態。

 

Twitterに投げかけたところ、「header関数はHTTPヘッダを送信する関数なので、関数使う前に文字を出力していると無効になっちゃいますね」と教えていただき、これはFuelphp的な問題だと気づきました。

 

結論としてはFuelphpの作法でステータスコードを設定する必要があります。 Rest コントローラ - 概要 - FuelPHP ドキュメントにありました。

response($data = array(), $http_code = 200)

とありました。実際にControllerでViewを生成するところに当てはめてみます。

$view = View::forge('sample/error'); // Viewファイルの指定

$view->set('test',$test); // 値を渡す

return Response::forge($view,404);

上記の404のところに任意のステータスコードを記入すると、任意のViewで任意のステータスコードを返すことができます。