Лучший способ обработать ответ JSON в Laravel - PullRequest
0 голосов
/ 30 ноября 2018

Я использую Laravel 5.5 и PHP 7 и создаю форму, подобную этой.

<form id="form" name="xxx" action="post">
  <input type="text" name="body_color[1][en]">
  <button type="submit" name="submit">Submit</button>
</form>

Я отправляю данные через Ajax и получаю следующий ответ от Laravel, когда у меня возникает ошибка.

ошибка: body_color.1.en: ["Поле body color..en обязательно."] Success: false

Если Laravel не заменяет"[" и "]" с точкой, я могу эффективно отобразить сообщение об ошибке в браузере, используя jQuery.

$('#form *[name=body_color[1][en]]').after('input error!');

Как я могу показать простое сообщение об ошибке в веб-браузере?

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

запустите ваш ответ через JSON.parse (response), и вы сможете использовать стандартный синтаксис json для просмотра данных.

var r = JSON.parse(response):

console.log(r);

0 голосов
/ 30 ноября 2018

С вашим требованием jQuery в этом случае должна работать простая замена регулярного выражения:

var str = "body_color.1.en"
str.replace(/\.(.+)\./, "[$1][") + "]" // returns body_color[1][en]

Или вы можете просто разбить строку на точки и перестроить ее:

str.split('.')  // returns ['body_color', '1', 'en'];

Существует множество существующих классов Javascript для обработки сообщений об ошибках, например: https://github.com/spatie/form-backend-validation

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