2017-11-03 13 views
0

私はroutes/api.phpで作業しているので、これはデフォルトで実装するべきだと思います。APIiルートのCostum findOrFail

findOrFail()メソッドの指定されたid引数の行が見つからない場合は、404エラーjson応答を返します。

ような何か:その代わり、デフォルトSorry, the page you are looking for could not be found.ブレードページの

return response()->json(['status' => 'ERROR', 'error' => '404 not found'], 404); 

私がやりたいdown't:

どこ
$item = Model::find($id); 
if(is_null($item)) 
    return response()->json(['status' => 'ERROR', 'error' => '404 not found'], 404); 

私はidを取得し、それがAPIにいくつかの「混乱」を原因となりますので、私はミドルウェアでこれを実装したくないとき。 PHPファイル。

答えて

1

あなたは常にHandler.php

\アプリケーション\例外インポート、以下のものを使用してクラスに例外で例外をキャッチすることができます

を追加し、

use \Illuminate\Database\Eloquent\ModelNotFoundException; 

とrenderメソッドで

if ($e instanceof ModelNotFoundException) { 

      return response()->json([ 
       'message' => 'Record not found', 
      ], 404); 

     } 
+0

同じ結果が得られましたが、例外の名前が正しくない可能性があります –

+0

例外をクラスにインポートしましたか? ¥Illuminate¥Database¥Eloquent¥ModelNotFoundException – pseudoanime

+0

右(:ありがとうございます、それは重要な詳細だと思いますが、詳細を検討するためにアンカーを編集できますか? –

関連する問題