Отправка формы Laravel не отправляется по правильному маршруту?

#php #laravel

#php #laravel

Вопрос:

Я установил последнюю версию laravel. Я создал эту простую форму. Я хочу создать, post но когда я отправляю, это переходит к localhost/post неправильному URL . Фактическое URL это http://localhost/laravel_practice/

Форма

 <form method="post" action="/post">
<div class="form-group">
    <label>Title</label>
    <input type="text" name="title" class="form-control" placeholder="Enter Title Here">
</div>
<div class="form-group">
    <label>Body</label>
    <textarea name="body" class="form-control" placeholder="Enter the body"></textarea>
</div>
<div class="form-group">
    <input type="submit" name="sumit" class="btn btn-primary" value="Publish">
</div>
  

Мои маршруты

  Route::get('/' ,'PostController@index');

Route::get('/posts/create', 'PostController@create');
Route::post('/post','PostController@store');
  

Комментарии:

1. Пожалуйста, проверьте себя, задайте еще один вопрос

2. Присвойте вашему маршруту имя, используйте это, чтобы получить свой маршрут: laravel.com/docs/5.8/helpers#method-route

Ответ №1:

Ваше краткое исправление заключается в использовании action="/laravel_practice/post" or action="/laravel_practice/public/post" в зависимости от того, по какому URL вы хотите перейти.

Однако это плохая практика. Вы должны использовать название маршрута. Для этого дайте любое имя маршруту, как показано ниже,

 Route::post('/post','PostController@store')->name('post.store');
  

Тогда для просмотра вам следует использовать,

 <form method="post" action="{{ route('post.store') }}">
  

Чтобы узнать больше об именованном маршруте, вы можете просмотреть этот документ.