Как узнать, когда нарушается правило проверки unqiue при отправке запроса JSON POST? - PullRequest
0 голосов
/ 28 апреля 2018

Из того, что я знаю, Laravel ответит 422, если проверка не пройдена для любого правила.

Что, если меня интересуют только некоторые ошибки правил, например, «уникальность»? Как проверить, что определенное поле ввода не проходит проверку из-за правила «уникальности»?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

вы можете легко проверить возвращение параметров json в js-кодах, но если вы хотите настроить ответ, есть способ манипулировать ответами, если вы проверяете поля в ваших контроллерах laravel.

Проверьте наличие определенного правила в возвращенном массиве ошибочных правил в вашем контроллере:

if ($validator->fails()) {

   $failedRules = $validator->failed();

   if(isset($failedRules['email_address']['Unique'])) {

   ...

таким образом вы обнаруживаете конкретный сбой (в этом примере адрес электронной почты должен быть уникальным) и выполняете свои собственные действия и возвращаете ответ.

0 голосов
/ 28 апреля 2018

Вы по-прежнему получаете все ошибки проверки, поскольку вы отправляете правильные заголовки - которые вы есть, иначе вы не получите 422.

Тогда ошибки проверки возвращаются в следующем формате:

{
    errors: {
        field1: ["Field 1 must be unique", /* other failures */],
        // ... other fields
    },
    message: "The given data was invalid"
}

Код ошибки 422 является правильным (возвращается ошибкой проверки Laravel) и указывает, что на самом деле произошла ошибка.

Вам просто нужно вызвать response.data вашего объекта ответа в JavaScript, чтобы получить доступ к возвращенным данным (по крайней мере, с Axios).

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