Не срабатывает код в контроллере 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 шт):
Проблема, вероятно, в реквесте. Попробуйте убрать входные параметры из контроллера и 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) { ...
Не забудьте сбросить кэш роутов.