Я использую пользовательскую проверку формы для моих ответов, используя toastr . По какой-то причине проверка действительно запускается, отображая уведомление toastr пример . Но это не остановит пользователя от создания ответа.
Я пытался переопределить функции проверки запасов, такие как:
formatValidationErrors()
и failedValidation()
Вторая функция была единственной для работы (отображает уведомление тостера), но она вызвала у меня проблему выше.
App \ Http \ Контроллеры \ ReplyController.php
Вот метод магазина.
Событие ThreadReceivedReply
включено в начало файла.
public function store(Thread $thread, ReplyForm $form)
{
if (Gate::denies('create', new Reply)) {
toastr()->error('You are creating too many replies. Please wait 30 seconds', 'Slow Down');
return back();
}
$reply = Reply::create([
'body' => Purifier::clean(request('body')),
'user_steamid' => auth()->user()->steamid
]);
event(new ThreadReceivedReply($reply));
if($reply->user_steamid != $thread->user_steamid) {
$thread->user->notify(new RepliedToThread($thread));
};
$thread->replies()->save($reply);
Cache::forget('replies');
toastr()->success('Reply created. Nice job');
return back();
}
App \ Http \ Forms \ ReplyForm.php
<?php
namespace App\Http\Forms;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
class ReplyForm extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true; // testing
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'body' => 'required|max:1000|spamfree'
];
}
public function messages()
{
return [
'body.required' => 'Your reply needs body text!'
];
}
protected function failedValidation(Validator $validator)
{
$messages = $validator->messages();
foreach ($messages->all() as $message)
{
toastr()->error($message, 'Woops');
}
return $validator->errors()->all();
}
}
Я как бы ушел из этого поста , чтобы попытаться исправить проблему, но это не сильно меня задело.
Ожидаемый результат - если вы не введете информацию о теле, то эта ошибка проверки будет отображаться как тост Я бы показал вам ошибки, но ни одна не отображалась. Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать меня. Заранее благодарю за помощь!