Я новичок во всей концепции обработки исключений или ошибок в laravel. В основном у меня есть запрос формы, который, когда правила не соблюдаются, показывает ошибку 422 в консоли, я хочу преобразовать это в сообщение об ошибке в блейде, но мне не удается.
Я уже пробовал это в Exception / Handle.php
public function render($request, Exception $exception)
{
return redirect()->back()->with('error', 'Invalid data');
// return parent::render($request, $exception);
}
Мое сообщение об ошибке в blade-сервере должно работать с этим:
@if(Session::has('error'))
<div class="alert alert-error">
{{ Session::get('error') }}
@php
Session::forget('error');
@endphp
</div>
@endif
Я знаю, что должен проверить коды ошибок или экземпляры перед возвратом, но я просто хочу получить этоработает. Я не могу ничего вернуть (нет ответа вообще). Одна мысль, которая работает, это return parent::render($request, $exception);
, и она выводит сообщение об ошибке в консоли
Так что больше информации
Я не знаю, помогает ли это, но запрос сделаниз приложения Vue в контроллер, который принимает FormRequest в качестве параметра.
Кроме того, я не могу проверить код ошибки, я пытался
public function render($request, Exception $exception)
{
if ($exception->getCode() === 422) {
return response([], 356); //should throw 356 error
}
return parent::render($request, $exception); // instead this return fires and gives me 422 error
}
компонент Vue
мой шаблон:
<template>
<form class="form" @submit.prevent="submit()">
<input type="text" class="form-control-plaintext textField"
placeholder="Post a comment" required v-model="textField">
<button :disabled="disabled" class="btn btn-success submit" type="submit">Post</button>
<button :disabled="disabled" class="btn btn-dark submit" type="reset">Cancel</button>
</form>
</template>
мой метод axios:
axios
.post('/comments', {
textField: this.textField,
id: this.id,
routeName: this.routename,
})
.then(response => {
this.name = '';
this.callReload(this.id);
this.textField = '';
})
.catch(function (error) {
console.log(error)
});