0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OctoberCMSプラグイン作成:コンポーネントからPage Not Found (404)を返す

Last updated at Posted at 2018-04-08

OctoberCMSでは今のところ残念なことにLaravelのabort(404)が使えません。
404エラーページを表示せずに500エラーとして処理されてしまいます。

フロントエンドのページで404エラーページを表示するには下記の方法が考えられます。

  1. /404 へリダイレクトさせる
  2. コンポーネントで404のレスポンスを返させる
  3. ページのPHPセクションで404のレスポンスを返させる

ここでは2について説明します。

フロントエンドでコンポーネントから404エラーページを表示するにはコンポーネントクラスのonRun()などで下記のようにします。

public function onRun()
{
    if ($this->error) {
        return Response::make($this->controller->run('404'), 404);
    }
}

コンポーネントクラスの他の自作メソッドは純粋にデータを返すだけなのでエラーページの表示にはなりません。
上記の実装例の場合、どこかで、$this->errorフラグをtrueにすることで、テーマに実装された404のページが表示されるようになります。

参考

Building Components: Halting with a response

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?