У меня есть базовая форма c, которая собирает информацию о пользователе (имя, фамилия и т. Д. c)
Пример одного поля ввода:
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" name="name" value="{{ old('name', $user->name) }}">
@if ($errors->has('name'))
<span class="help-block">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
</div>
Я отправляю это данные через AJAX запрос к серверу. Если во время проверки возникают ошибки, я хочу вернуть представление с отображением ошибок. Примерно так:
$html = view('partials.update_form')->withErrors($validator)->withInput()->render();
return response()->json(['html' => $html, 'status' => 'error']);
Однако, это возвращает ошибку 500. Я также пытался убедиться, что данные пользователя добавляются так:
$html = view('partials.update_form', compact('user'))->withErrors($validator)->withInput()->render();
return response()->json(['html' => $html, 'status' => 'error']);
Это также оказалось бесполезным Любой очень хотелось бы получить помощь
Вот моя AJAX просьба просто дать вам полную картину:
var formData = new FormData($('#update-user-form')[0]);
if ($('form').find('input[name=avatar]').val() != '') {
formData.append('avatar', $('form').find('input[name=avatar]')[0].files[0], $('form').find('input[name=avatar]').val());
}
var id = $('form').find('input[name=id]').val();
$.ajax({
type: "POST",
dataType: "json",
enctype: 'multipart/form-data',
url: 'admin/edit/'+id,
data: formData,
processData: false,
contentType: false,
success: function (response) {
console.log(response);
$('.update-form-wrapper').html(response.html);
}
});
Вот прилагаемые журналы для тех, кто спросил:
Call to undefined method Illuminate\Support\MessageBag::getBag() (View: /var/www/emailix/resources/views/partials/update_form.blade.php) {"userId":1,"exception":"[object] (Facade\\Ignition\\Exceptions\\ViewException(code: 0): Call to undefined method Illuminate\\Support\\MessageBag::getBag() (View: /var/www/emailix/resources/views/partials/update_form.blade.php) at /var/www/emailix/resources/views/partials/update_form.blade.php:21)
[stacktrace]
Надеюсь, это обеспечит некоторую ясность