В вашем коде
GET|HEAD | admin/products/{}/edit
{}
должно быть заполнено значением, например, {item}
Если в вашем методе контроллера ProductsController@edit
у вас есть код, подобный
public function edit(Request $request, Item $item){
}
второй аргумент Item $item
должен 1) существовать, 2) соответствовать значению, которое вы имеете в вашем маршруте {variable} , поэтому, если у вас {item}
переменная в аргументе метода должно быть item
, если это {something}
, тогда оно должно быть public function edit(Request $request, Item $something);...
Обратите внимание, что Request $ request, не требуется в методе;
Я хотел бы добавить, что при этом Item $item
приведет к 404, если элемент не найден, элемент будет выбран на основе метода getRouteKeyName()
в модели этого элемента, поэтому, если у вас есть в Item model
что-то вроде
public function getRouteKeyName()
{
return 'slug';
}
Элемент будет выбран столбцом slug
из базы данных. Опять же, если у вас нет этого метода, он будет использовать идентификатор.
Итак, чтобы подвести итог, web
должно иметь {some_value}
, совпадающее с аргументом вашего контроллера этой модели Product $some_value
, где some_value
по умолчанию является идентификатором модели Продукта, если вы не определяете метод getRouteKeyName()
для вашей Products
Eloquent модели
Laravel Внедрение зависимостей контроллеров Надеюсь, что это решит это!