Не срабатывает код в контроллере laravel

Не работает код в контроллере. Форма обрабатывается, при нажатии на кнопку должен срабатывать контроллер, который записывает данные в бд. Код внутри контроллера не срабатывает. При нажатии на кнопку просто перезагружается страница (по крайней мере, это так выглядит), ошибок никаких не выдает.

web.php:

Route::post('/post/{id}/submit', [\App\Http\Controllers\PostController::class, 'postCommentSubmit'])->name('postCommentSubmit');

PostController:

public function postCommentSubmit($id, PostRequest $data) {
  //здесь код, который не выполняется, не происходит даже редирект
return redirect()->route('home');

}

comments.blade.php:

        <form action="{{ route('postCommentSubmit', $post[0]->id) }}" method="post" enctype="multipart/form-data">
        @csrf
        <textarea name="comment" id="" cols="30" rows="10" placeholder="Your answer"></textarea>
</div>
<button type="submit" class="btn btn-outline-primary">Submit</button>
</form>

Ответы (1 шт):

Автор решения: Cyrtolat

Проблема, вероятно, в реквесте. Попробуйте убрать входные параметры из контроллера и dd'шнуть из него. Если сработает - повторить с реквестом. Так Вы локализируете ошибку и поймете в чем дело. Помимо это хотел бы дать небольшой совет. Вам не обязательно передавать в контроллер id поста, чтоб потом искать модель. Вместо этого Вы можете передавать саму модель. Для этого нужно в RouteSurviceProvider в методе boot() зарегистрировать Вашу модель таким образом:

Route::model('post', \App\Models\Post::class);

Затем в роуте прописать не

Route::post('/post/{id}/submit'...

а

Route::post('/post/{post}/submit'

В контроллере же входным параметром указать

public function postCommentSubmit(PostRequest $data, Post $post) { ...

Не забудьте сбросить кэш роутов.

→ Ссылка