У меня есть ссылка pass id
на контроллер. Первый сценарий с параметром $id
в функции contrller вызывает ошибку Missing argument 1 for App\Http\Controllers\ProductController::edit()
. когда я меняю его, чтобы запросить, он работает, что я ожидал, но я не понимаю, почему laravel can not map id в строке запроса для varaible $ id в функции контроллера?Параметр laravel pass by href as variable вместо объекта Request
Контроллер
public function edit($id)//this throws missing argument exception, if I change $id to Request $request it works..
{
return view('frontend.product.create');
}
Лезвие
<a data href="{{ route('product.edit',['id'=>$product->id]) }}"><i class="fa fa-edit"></i> </a>
Маршруты
Route::get('product/edit', ['uses' => '[email protected]', 'as'=>'product.edit']);
EDITED вот изменения, которые я делаю и результат: Маршруты
Route::get('product/edit/{id}', ['uses' => '[email protected]', 'as'=>'product.edit']);
результат:
NotFoundHttpException in compiled.php line 8277:
in compiled.php line 8277
at RouteCollection->match(object(Request)) in compiled.php line 7511
at Router->findRoute(object(Request)) in compiled.php line 7476
at Router->dispatchToRoute(object(Request)) in compiled.php line 7468
at Router->dispatch(object(Request)) in compiled.php line 2307
...
, как вы видите, что ожидает запроса объекта, но я хочу, чтобы отправить его только varible ..
Да, это связано с этим, но на самом деле я хотел сделать это без изменения маршрута. Я имею в виду: «Маршрут :: получить (« продукт/редактировать », ..)» и использовать лезвие с именем параметра: « TyForHelpDude
вы можете использовать необязательные параметры в маршруте как Route :: get ('product/edit/{id?}', ['uses' => 'ProductController @ отредактируйте ',' как '=>' product.edit ']) просто добавьте в {id?} , а затем вы можете получить доступ к маршруту с параметром и без него. вы можете использовать, если условия для этого в противном случае контроллер –
это то, что я ищу. спасибо bro – TyForHelpDude