Почему ничего не происходит при использовании кастомного Request класса в store-методе контроллера?

Есть метод store контроллера PostController:
PostController.php

public function store(StorePostRequest $request)
    {
        try {
            $validator = $request->validated();
            if ($validator->fails()) {
                return redirect()->route('dashboard.posts.create')
                            ->withErrors($validator)
                            ->withInput();
            }
            dd($validator);
            $post = new Post;
            $post->title = $validator->title;
            $post->slug = $validator->slug;
            $post->save();
            return redirect()->route('dashboard.posts.create')->with('success', 'Пост успешно добавлен.');
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }


Есть Request класс, в котором происходит валидация полей:
StorePostRequest.php
<?php

namespace App\Http\Requests\Post;

use Illuminate\Foundation\Http\FormRequest;
use Rule;

class StorePostRequest extends FormRequest
{
    public function authorize()
    {
        return auth()->check() && $this->user()->hasRole('admin');
    }

    public function rules()
    {
        return [
            'slug' => 'required|string|unique:posts',
            'title' => 'required|string|max:255'
        ];
    }
}

Создаю запись (количество полей больше, чем должно пройти валидацию), но все время происходит редирект обратно на форму создания поста (причем даже если не указывать route()), метод dd() не работает, прошерстил Stackoverflow, у многих, у кого была подобная проблема, решается как правило указанием use App\Http\Requests\Post\StorePostRequest; в конроллере, но у меня все в этом плане нормально, уже не знаю за что зацепиться, чтобы определить, в чем может быть проблема. В чем все-таки может быть проблема?
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
Если бы ты читал документацию, то узнал бы, что валидация в форм реквесте применяется автоматически при вызове метода контроллера, т.е. до твоего странного кода дело даже не доходит. Но ты не читаешь документацию и рожаешь костыли с занозами.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы