2015-06-11 13 views
9

ho scritto alcuni metodi REST API, tra cui uno per l'aggiornamento di una voce DB:PUT/richiesta PATCH con il postino restituisce il codice di stato 0 in laravel

// Update 
public function update(CreateAEDRequest $request, $id) { 
    $aed = AED::find($id); 

    if(!$aed) { 
     return response()->json(['message' => "Dieser AED exisitiert nicht", 'code' => 404], 404); 
    } 

    $owner = $request->get('owner'); 
    $street = $request->get('street'); 

    $aed->owner = $owner; 
    $street->street = $street; 

    $aed->save(); 

    return response()->json(['message' => 'Der AED wurde aktualisiert'], 200); 
} 

il percorso è definito come:

Route::put('/aeds/{aeds}', '[email protected]'); 
    Route::patch('/aeds/{aeds}', '[email protected]'); 

una richiesta viene gestita da:

<?php 

namespace App\Http\Requests; 

use App\Http\Requests\Request; 
use Illuminate\Http\JsonResponse; 

class CreateAEDRequest extends Request 
{ 
    public function authorize() 
    { 
     // turn back to false when doing auth 
     return true; 
    } 

    public function rules() 
    { 
     return [ 
      'owner' => 'required', 
      'street' => 'required' 
     ]; 
    } 

} 

Ma quando io uso postino e cerco di aggiornare la voce DB esistente e io fil l nel proprietario e nella variabile di strada da inviare in POSTMAN come richiesto, ricevo il messaggio: "Impossibile ottenere alcuna risposta. Restituisce codice di stato 0"

enter image description here

Tutti gli altri metodi funzionano bene. È la definizione del mio percorso non è corretta?

Aggiornamento Quando invio i dati come x-www-form-urlencoded cosí! Quando ho inviarli come form-data che porta in primo piano il messaggio di errore.

+0

è '$ id' null quando si codifica come form-data? Normalmente chiameresti le tue variabili con lo stesso nome del parametro route, ma non sono sicuro che questo sia un bisogno fondamentale. – Varedis

+0

Beh, non capisco perché funziona con x-www-form-urlencoded quindi – sesc360

+5

per put/patch è necessario inviare dati come x-www-form-urlencoded –

risposta

1

In Postman

  1. Cambiare metodo per POST
  2. Aggiungi nuova variabile _method con un valore PUT o PATCH
+1

questo metodo doesn lavoro per me in laravel 5.4 –

1

Sembra che in Postman è necessario indicare che i dati inviati è x-www-url-formurlencoded.

enter image description here

Problemi correlati