Задать вопрос
@yatort

Как вывести сообщение об ошибке validator по ajax?

Всем привет

Есть метод:

public function uploadImage(Request $request){
    $site_id = Auth::user()->site_id;

    $postData = $request->only('file');
    $file = $postData['file'];

    $fileArray = array('image' => $file);

    $rules = array(
        'image' => 'mimes:jpeg,jpg,png|required|max:5000' // max 5000kb
    );

    $messages = array(
        'image.mimes' => 'сообщение 1.',
        'image.required' => 'сообщение 2.',
        'image.max' => 'сообщение 3.',
    );

    $validator = Validator::make($fileArray, $rules, $messages);

    if ($validator->fails()) {
        return array(
            'fail' => true,
            'errors' => $validator->errors()
        );
    }

   ...

}


И собственно сам ajax

$.ajax({
    url: '/admin/update/sections/upload-image',
    dataType: 'text',
    cache: false,
    contentType: false,
    processData: false,
    data: form_data,
    type: 'post',
    success: function(data){
        console.log(data);
        alert('1123!');
        if(data.fail){
            console.log(data.fail);
            //alert(data.fail);
            alert('success!');
        }
    },
    error: function (xhr, status, error) {
        console.log(xhr.responseText);
        alert(xhr.responseText);
    }
});


data возвращает
{"fail":true,"errors":{"image":["\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 3."]}}


вроде ок, но дальше чем console.loc не проходит, alert не срабатывает, уже зат(мучился) уже, 2й день сижу

Можете показать на примере как с этим работать? Как это все вывести дальше?
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Сделайте не console.log(data);, а console.dir(data);, и посмотрите на структуру данных. Скорее всего там будет одна строка. А должны быть отдельные переменные "fail" и "errors". Если их нет - то и if (data.fail) { работать не будет, потому что data не распарсилась как JSON. А в JQuery ведь есть функция парсинга JSON, да?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽