【CodeIgniter3】コントローラー毎にエラーページを切り替える方法です。
コントローラー毎にエラーページのデザインを変更したかったのでフックを使ってエラーページのテンプレートを切り替えるようにしてみました。
フックを使うので最初にapplication/config/hooks.phpファイルでフックを定義します。
コントローラーのコンストラクタで読み込んでいるライブラリ等を使用したいので、フックポイントはコントローラがインスタンス化された直後に実行される「post_controller_constructor」を指定しています。
次に以下の場所にhookディレクトリにフッククラス(Hooks.php)を作ります。
上記の処理でコントローラー毎にエラーテンプレートのパス「error_views_path」を変更しています。
あとはerrorsディレクトリ内にコントローラー名のディレクトリを作って、errors/html内のファイルをコピーすれば完了です。
コントローラーのメソッド内でshow_errorやshow_404を使用した時に設定したエラーページのテンプレートが読み込まれるようになります。