422 Unprocessable Entity Laravel 5.6 AJAX-запрос Использование правил запроса, возвращающих ответ в json - PullRequest
0 голосов
/ 27 апреля 2018

Получение 422 Unprocessable Entity Когда в моем запросе есть дубликат электронной почты или имя пользователя, но если я регистрируюсь с уникальным адресом электронной почты и именем пользователя, все работает нормально. эта проблема с laravel мой файл правил выглядит так.

namespace App\Http\Requests;

use App\Http\Requests\Request;

class RegisterRequest extends JsonRequest
{

    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'name' => 'required',
            'username' => 'required|unique:users,username',
            'email' => 'required|email|unique:users,email',
            'password' => 'required',
            'confirm_password' => 'required|same:password'
        ];
    }
}

Файл My Handler.php.

<?php

namespace App\Exceptions;

use Exception;
use Illuminate\Validation\ValidationException;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Illuminate\Contracts\Validation\Validator;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;

class Handler extends ExceptionHandler
{

    protected $dontReport = [
        AuthorizationException::class,
        HttpException::class,
        ModelNotFoundException::class,
        ValidationException::class,
    ];

    protected $dontFlash = [
        'password',
        'password_confirmation',
    ];
    public function report(Exception $exception)
    {
        parent::report($exception);
    }

    protected function failedValidation(\Illuminate\Contracts\Validation\Validator $validator)
{
    $response = new JsonResponse(['data' => [], 
             'meta' => [
                'success' => false,
                'message' => 'The given data is invalid', 
                'errors' => $validator->errors()
             ]], 422);

   throw new HttpResponseException(response()->json($validator->errors(), 422)); 
}

protected function invalidJson($request, ValidationException $exception)
{
    return response()->json(['success' => false, 'errors' => $exception->errors()], $exception->status);
}
    public function render($request, Exception $exception)
    {
        return parent::render($request, $exception);
    }
}

Я пытался вернуть json для всех моих запросов, я добавил этот код глобально в мой файл обработчика. но я все еще получаю 442 Status code Может быть проблема с возвратом JSON, пожалуйста, посмотрите мой код, если кто-то может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...