OctoberCMSでは今のところ残念なことにLaravelのabort(404)
が使えません。
404エラーページを表示せずに500エラーとして処理されてしまいます。
フロントエンドのページで404エラーページを表示するには下記の方法が考えられます。
-
/404
へリダイレクトさせる - コンポーネントで404のレスポンスを返させる
- ページのPHPセクションで404のレスポンスを返させる
ここでは3について説明します。
ページテンプレートのPHPセクションで return Response::make($this->controller->run('404'), 404);
を記述することでできます。
下記実装例では、URLで指定したプロダクトが存在しない場合Page not foundを表示させています。
url = "/product/:product_key"
[product]
product_key = "{{ :product_key }}"
==
<?php
function onInit()
{
if (!$this->product->exist()) {
return Response::make($this->controller->run('404'), 404);
}
}
?>
==
{# テンプレートコード #}