Jeśli zwrócę przedmiot:
return Response::json([
'hello' => $value
]);
kod statusu to 200. Jak mogę zmienić go na 201, z komunikatem i wysłać go z obiektem json ?.
Nie wiem, czy istnieje sposób, aby po prostu ustawić kod statusu w Laravel.
php
json
laravel
http-status-codes
Galivan
źródło
źródło
response()->json([], 200);
nadaje się do celu w tej sytuacji? Czy może 200 jest ukryta?use Illuminate\Http\Response;
ireturn new Response(['message' => 'test'], 422);
pracował dla mnieTak to robię w Laravel 5
return Response::json(['hello' => $value],201);
Lub używając funkcji pomocniczej:
return response()->json(['hello' => $value], 201);
źródło
Myślę, że lepszą praktyką jest trzymanie odpowiedzi pod jedną kontrolą iz tego powodu znalazłem najbardziej oficjalne rozwiązanie.
dodaj to po
namespace
deklaracji:use Illuminate\Http\Response;
źródło
Jest wiele sposobów
return \Response::json(['hello' => $value], STATUS_CODE); return response()->json(['hello' => $value], STATUS_CODE);
gdzie STATUS_CODE to kod statusu HTTP, który chcesz wysłać. Obie są identyczne.
jeśli używasz modelu Eloquent, prosty zwrot również zostanie domyślnie automatycznie przekonwertowany na JSON , np.
return User::all();
źródło
return response(['title' => trans('web.errors.duplicate_title')], 422); //Unprocessable Entity
Mam nadzieję, że moja odpowiedź była pomocna.
źródło
Sam wolę pomocnika odpowiedzi:
return response()->json(['message' => 'Yup. This request succeeded.'], 200);
źródło
Lepiej jest to zrobić za pomocą funkcji pomocniczych niż Fasady . To rozwiązanie będzie działać dobrze od Laravel 5.7 i nowszych
//import dependency use Illuminate\Http\Response; //snippet return \response()->json([ 'status' => '403',//sample entry 'message' => 'ACCOUNT ACTION HAS BEEN DISABLED',//sample message ], Response::HTTP_FORBIDDEN);//Illuminate\Http\Response sets appropriate headers
źródło
laravel 7. * Nie musisz specyfikować JSON RESPONSE, ponieważ jest on automatycznie konwertowany na JSON
return response(['Message'=>'Wrong Credintals'], 400);
źródło