[英]Laravel named route URL with parameter not working as expected
我正在尝试使用laravel route helper生成带有参数的网址,
route('frontend.admin.categories.edit', $catRequest->id)
但这是生成的URL
http://localhost:8000/admin/categories/edit?1
我需要这样的网址
http://localhost:8000/admin/categories/edit/1
这是我的路线
Route::get('admin/categories/edit/{id}', 'CategoryController@edit')
->name('admin.categories.edit');
这是什么问题?
您需要为参数使用数组:
route('frontend.admin.categories.edit', ['id' => $catRequest->id])
否则,所有参数都将用作$ _GET参数。
您可以通过传递关联数组而不是变量来指定要替换的参数。
更改,
route('frontend.admin.categories.edit', $catRequest->id)
至
route('frontend.admin.categories.edit', [
'id' => $catRequest->id
]);
您输入了错误的路由,在定义admin.categories.edit
您的路由命名为admin.categories.edit
,但在辅助函数(不是最初定义的路由)中调用了frontend.admin.categories.edit
。 所以你的代码应该是:
route('admin.categories.edit', [
'id' => $catRequest->id
]);
阅读材料
尝试使用php artisan route:list
查看您的路线php artisan route:list
。 如果您在列表中找到具有正确Uri的路由,那么您不会在路由文件中再次指定具有相同Uri或相同别名的路由。
希望这可以帮助 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.