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"
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.
è '$ 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
Beh, non capisco perché funziona con x-www-form-urlencoded quindi – sesc360
per put/patch è necessario inviare dati come x-www-form-urlencoded –