OctoberCMSでは今のところ残念なことにLaravelのabort(404)
が使えません。
404エラーページを表示せずに500エラーとして処理されてしまいます。
フロントエンドのページで404エラーページを表示するには下記の方法が考えられます。
-
/404
へリダイレクトさせる - コンポーネントで404のレスポンスを返させる
- ページのPHPセクションで404のレスポンスを返させる
ここでは2について説明します。
フロントエンドでコンポーネントから404エラーページを表示するにはコンポーネントクラスのonRun()
などで下記のようにします。
public function onRun()
{
if ($this->error) {
return Response::make($this->controller->run('404'), 404);
}
}
コンポーネントクラスの他の自作メソッドは純粋にデータを返すだけなのでエラーページの表示にはなりません。
上記の実装例の場合、どこかで、$this->error
フラグをtrue
にすることで、テーマに実装された404のページが表示されるようになります。