繁体   English   中英

Laravel使用参数无法按预期命名路由URL

[英]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
]);

编辑#1

您输入了错误的路由,在定义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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM