2016-07-11 5 views
0

Laravelには、3つの異なるHttp名前空間、Frontend、Backend、およびAPIがあります。各ルートグループには異なる名前空間もあります。ここでRouteServiceProviderからのサンプルコード(フロントエンドルートグループ)は、次のとおりです。Laravel異なる名前空間/ルートグループの別の404ページ

protected function mapFrontendRoutes(Router $router) { 
    $router->group([ 
     'namespace' => 'App\Http\Controllers\Frontend', 
     'middleware' => 'web', 
    ], function ($router) { 
     require app_path('Http/Routes/frontend.php'); 
    }); 
} 

は今、私はセットアップにこれらの名前空間/ルートグループのための3つの異なる404ページたい:

  • APIを - JSONで404応答を示し、フォーマット
  • フロントエンド - エラー/ 404.blade.php
  • バックエンド - /バックエンド/誤差の別のビューを持っている404.blade.php

これらはどのように作成できますか?私はウェブを検索していて、これに関して何も出てこなかった。

Laravelのバージョンは:5.2

答えて

1

あなたはApp\Exceptions\Handlerに(追加)renderHttpExceptionメソッドをオーバーライドしてそれを達成することができます。このメソッドはパラメータとしてHttpExceptionを受け取り、応答を返します。

このような何か:

protected function renderHttpException(HttpException $e) { 

    $status = $e->getStatusCode(); 

    if (Request::ajax() || Request::wantsJson()) { 
     return response()->json([], $status); 
    } else if(Request::is('/backend/*')) { //Chane to your backend your ! 
     return response()->view("backend/errors.{$status}", ['exception' => $e], $status, $e->getHeaders()); 
    }else { 
     return response()->view("errors.{$status}", ['exception' => $e], $status, $e->getHeaders()); 
    } 

} 
+0

私はいくつかのコードを追加した更新の答えをチェックしてください! –

関連する問題