やったこと

webサービスを作るときに考えたことを垂れ流します

【cakePHP3】例外発生時にテンプレートに変数を渡す!

CakePHP3の話なんですが、コントローラー内で例外処理を発生させると「error400.ctp」や「error500.ctp」といったテンプレートファイルが呼ばれてエラー画面が表示されますよね。

あのテンプレートに変数を渡す方法です。

以下のように[]の中に変数を記述すると、テンプレートファイルに変数を渡すことができます。

use Cake\Network\Exception\NotFoundException;

class HogegeController extends AppController
{
    public function _err_occur()
    {
      //コントローラーから例外発生
      throw new NotFoundException(['testes' => 'テストだよ!']);
    }
}

テンプレート内(/Template/Error/error400.ctp)では「$testes」の変数が参照可能です。

以上!