2016-07-14 17 views
0

Ich mache eine API, ich möchte überprüfen, ob die Posted Params (von Curl) gleich sind de Ressource Params. Wenn nicht, möchte ich einen JSON mit Fehlern zurückgeben.Laravel überprüfen, ob alle route resourcer params gesetzt sind

Wie bekomme ich es, um alle Routenressourcenparameter zu überprüfen?

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

ich denke, das von Ihrem controller.You behandelt werden kann, dass auf Show/Edit/Update/zerstören implementieren müssen. Sie könnten bei Bedarf die Hilfsfunktion verwenden. – ClearBoth

+0

@ClearBoth, wenn ich den ID-Parameter leer lasse, erhalte ich einen Routenfehler, MethodNotAllowedHttpException in RouteCollection.php, also muss ich ihn fangen, bevor er den Controller betritt. Ich denke in der Route :: Gruppe aber wie ?! – Bas

+0

@Bas Für welche Methode? –

Antwort

1

Sie können die MethodNotAllowedHttpException Griff in Exception/Handler.php in Methode 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); 
} 

mehr Erklärung here

+0

@ code3rite, danke, aber jetzt kann ich nicht zurück, was schief geht, oder ist das möglich, es in der Handler zu filtern und wie? – Bas

+1

wie in meinem Code oben gezeigt, In meinem Beispiel, ich Filter auf 'MethodNotAllowedHttpException' und geben Sie Ihre benutzerdefinierte JSON-Antwort mit 404 Statuscode. – xmhafiz

+0

Danke, das ist besser als meine Lösung :) – Bas

0

Die Antwort lautet:

routes.php

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

Controller: $ id = null und machen eine check ID check

public function update(Request $request, $id = null){ 
    if($id != null){ 
     //do stuff 
} 
Verwandte Themen