Laravel zwraca 404 przy niepoprawnej walidacji

0

Hej, tworzę API w Laravel, stworzyłem sobie requesta, który ma mi walidować dane. Gdy wszystkie dane są w porządku wszystko przechodzi i jest git, jeżeli walidacja nie przechodzi, Laravel rzuca 404 i to cały dokument HTML. Routingi api mam w routes/api.php.

Metoda update

public function update(UserUpdate $request, $id)
{
	$user = User::find($id)->update($request->validated());
       	if($user) {
            return [
                'status' => '200',
                'success' => true,
                'message' => 'User has been updated'
            ];
        }
}

Walidacja Form Request

public function rules()
{
        return [
            'name' => 'string',
            'surname' => 'string',
            'email' => [
                'string',
                Rule::unique('users')->ignore($this->id)
            ],
        ];
}

public function messages() {
        return [
            'email.unique' => 'User with this email exist',
        ];
}
0

Czemu pokazujesz kod http w danych? To powinien być nagłówek

0

Sprawdź logi lub debuguj. Gdy walidacja nie przejdzie, laravel zwraca status 422, a nie 404.
404 znaczy tyle, że coś Ci się wywaliło - np. update nie przeszedł.

0

Problem rozwiązany. Leżał po stronie Postmana, który do symulowania zapytania AJAX (tylko na takie Laravel odpowiada JSON'em i zwraca poprawne nagłówki) potrzebował dodatkowego nagłówka X-Requested-With: XMLHttpRequest. Teraz wszystko śmiga, Laravel zwraca kod błędu oraz JSON.

Źródło: https://stackoverflow.com/questions/33117664/why-is-my-create-form-request-throwing-off-a-404-exception-in-laravel5

1 użytkowników online, w tym zalogowanych: 0, gości: 1