Проверка пользовательских форм не работает по какой-то причине - PullRequest
0 голосов
/ 11 июля 2019

Я использую пользовательскую проверку формы для моих ответов, используя 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();
    }
}

Я как бы ушел из этого поста , чтобы попытаться исправить проблему, но это не сильно меня задело. Ожидаемый результат - если вы не введете информацию о теле, то эта ошибка проверки будет отображаться как тост Я бы показал вам ошибки, но ни одна не отображалась. Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать меня. Заранее благодарю за помощь!

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