Метод Illuminate \ Validation \ Validator :: validateFiles не существует. Laravel 5.8 отправить форму - PullRequest
1 голос
/ 21 апреля 2020

Скорее всего, это дублирующий вопрос, но я искал решения и, похоже, не могу найти тот, который устраняет проблему, с которой я столкнулся. Я создал функцию с именем validateRequest , которая проверяет все поля. Затем эта функция вызывается в store function $post = Post::create($this->validateRequest()); Я убедился, что в HTML форма enctype="multipart/form-data" включена, но каждый раз при отправке новой записи появляются ошибки. Не уверен, правильно ли я использую метод возврата или что-то еще, очень благодарен за помощь.

    public function validateRequest()
    {
        return tap(
            $validated = request()->validate([
                'title' => 'required|string',
                'h1' => 'required|string',
                'page_title' => 'required|string',
                'meta_description' => 'required|string',
                'image' => 'sometimes|files|image|mimes:jpeg,png,jpg,gif,svg|max:5000',
                'content' => 'required|string',
                'active' => 'integer'
            ]), function () {

                if (request()->hasFile('image')){
                    request()->validate([
                        'image' => 'sometimes|files|image|mimes:jpeg,png,jpg,gif,svg|max:5000',
                    ]);
                }
            // Check if active is ticked
            $validated['active'] = isset(request()->active[0]) ? 1 : 0;

            // Create slug from title
            $validated['slug'] = Str::slug(request()['title'], '-');
        });
    }

1 Ответ

0 голосов
/ 21 апреля 2020

"files" не является допустимым валидатором, используйте file без "s"

   'image' => 'sometimes|files|image|mimes:jpeg,png,jpg,gif,svg|max:5000',

Надеюсь, это поможет

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