Как я могу устранить ошибку «Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD.» при обновлении столбца в таблице базы данных?

#mysql #laravel #laravel-7 #laravel-routing

Вопрос:

Я использую Laravel 7, и у меня нет такого опыта, у меня есть выпадающий список, в котором есть несколько вариантов, и я хотел бы, чтобы пользователь выбрал один вариант, и это обновляет столбец таблицы базы данных mysql под названием «category_id». Существует взаимно однозначная связь между двумя таблицами (таблицей»Клиенты» и таблицей «Категории»). Я пытался написать какой-то код, но получаю сообщение об ошибке

Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD.

каждый раз, когда нажимается кнопка Отправить. И колонка не обновляется. Пожалуйста, помогите. Спасибо.

Мой Контроллер:

 <?php

namespace AppHttpControllersClient;

use AppHttpControllersController;
use AppModelsCategory;
use AppModelsClient;

use IlluminateHttpRequest;



class ClientCategoryController extends Controller
{
    public function index()
    {
        
        $categories = Category::all();
        
        return view('client_panel.category.index',compact('categories'));
    }

    public function store(Request $request)
    {
       
    // Inserting category_id into Clients Table

        $client = Client::create([
                    'category_id'       => $request->category_id,
        ]);
    }
}
 

Моя Форма:

 <form method="post" action="{{ url('/client-category') }}">
        {{ csrf_field() }} 
        <div class="section-body">
            <div class="row">
                <div class="col-lg-6">
                    <div class="card">
                        <div class="card-body">
                            <p>Select one Category</p>        
                    <select class="custom-select" id="category_id" name="category_id">
                    @foreach($categories as $category )
                    <option value="{{ $category->id }}">{{ $category->name }}</option>
                    @endforeach
                    </select>
                    <br></br>
                    <div class="form-group">
                            <button type="submit" class="btn btn-primary btn-lg">
                                Submit
                            </button>
                        </div>
                            <div id="project-status-container" class="pt-2">
                                <canvas id="fundi-project-status"></canvas>
                            </div>
                        </div>
                    </div>
                </div>

            </div>
        </div>
        </form>
 

В моем Файле Маршрутов:

 Route::get('/client-category', 'ClientCategoryController@index')->name('client-category');
Route::post('/client-category', 'ClientCategoryController@store');
 

Отношения в модели клиентов:

 /**
     * @return BelongsTo
     */
    public function category()
    {
        return $this->belongsTo(Category::class);
    }
 

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

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

1. немного рискованно здесь, но в вашем определении маршрутов — это должна быть «категория клиента», а не «/категория клиента»?