2016-07-14 5 views
0

私はAPIを作成していますが、投稿されたパラメータ(curlによる)がリソースパラメータと等しいかどうかを確認します。もしそうでなければ、私はエラーのあるjsonを返したい。すべてのルートリソースパラメータが設定されているかどうかを確認します。

すべてのルートリソースパラメータをチェックするにはどうすればよいですか?

Route::group(['prefix' => 'api' , 'middleware' => 'auth:api'], function() { 
    Route::resource('note' , 'NoteController'); 
}); 
+0

私はこれがあなたのcontroller.Youから扱うことができると思うが破壊/ショー/編集/更新時にそれを実装する必要があります。必要に応じてヘルパー機能を使用することができます。 – ClearBoth

+0

@ClearBoth、ID paramをブランクのままにしておくとRouteCollection.phpのルートエラー、MethodNotAllowedHttpExceptionが発生するので、コントローラに入るためにキャッチする必要があります。私はルートで考える::グループしかし、どのように! – Bas

+0

@Basどのような方法ですか? –

答えて

1

を作りますException/Handler.php inメソッドrender

public function render($request, Exception $e) 
{ 
    // check if MethodNotAllowedHttpException exception type using status code 405 or instanceof 
    if ($e->getStatusCode() == 405) { 

     // custom your response. could be json with 404 or redirect to another page 
     return response()->json(['error' => true, 'message' => 'not found'], 404); 
    } 
    return parent::render($request, $e); 
} 

以上説明here

+0

@ code3rite、ありがとう、しかし、今私は間違っているものを返すことができないか、それはハンドラとそれをどのようにフィルタリングする可能性がありますか? – Bas

+1

上記の私のコードで示したように、私の例では、 'MethodNotAllowedHttpException'をフィルターに掛け、404ステータスコードでカスタムjson応答を返します。 – xmhafiz

+0

ありがとう、これは私のソリューションよりも優れています:) – Bas

0

答えは次のとおりです。

routes.phpの

Route::put('note', '[email protected]'); 

はコントローラー: $ ID = NULLとあなたはMethodNotAllowedHttpExceptionを扱うことができ、チェックIDチェック

public function update(Request $request, $id = null){ 
    if($id != null){ 
     //do stuff 
} 
関連する問題