Я не уверен, как проложить маршрут с переменной?

#php #laravel #laravel-routing

Вопрос:

У меня есть и редактируется тег привязки, соответствующий моей записи на моей веб-странице. Поэтому, когда я нажимаю на ссылку «Редактировать».

Я получаю уникальный идентификатор, прикрепленный к моему URI

 http://127.0.0.1:8000/cars/edit/3
 

Мой href выглядит так

 <a href="/cars/edit/{{$car->id}}" >
 

И мой соответствующий web.php выглядит так

 Route::get('/cars/edit/{{ $cars->id }}/',function (Request $request, $id)
 

И я хочу использовать этот конкретный идентификатор для обновления конкретной записи данных в моей базе данных.

Я не уверен, как это исправить

Когда я нажимаю «Изменить», я получаю это

Вот как выглядит моя веб-страница

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

1. Route::get('/cars/edit/{{ $cars->id }}... -> Route::get('/cars/edit/{id}...

2. Я сделал, Это не работает

3. Маршрут::get(‘/автомобили/редактировать/{id}’, функция ($id) { вернуть $id; });

4. В документации Laravel есть глава о параметрах маршрута

5. Параметры в маршрутах не принимают значения a $ . Как уже указывал @AlbertoSinigaglia (и, прочитав ссылку, которую я опубликовал), так оно и будет Route::get('/cars/edit/{id}... .

Ответ №1:

Позвольте мне объяснить вам о маршрутах Laravel. Маршрут-это удивительное решение в рамках Laravel. В будущем вам следует подробнее рассказать о маршруте в официальной документации Laravel.

Как правильно решить вашу проблему?

Во-первых, опишите edit метод routes/web.php так, как показано ниже

 Route::get('/cars/edit/{id}', [CarController::class, 'edit'])->name('cars.edit');
 

Второй шаг, описывают edit метод CarController как ниже

 class CarController extend Controller
{
...
    public function edit(Request $request, int $id): view
    {
        // $id - is car ID 
        // some code

        return view(...)
    }
...
}
 

Отличная работа.