#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. немного рискованно здесь, но в вашем определении маршрутов — это должна быть «категория клиента», а не «/категория клиента»?