Laravel 9.x参数路由404问题求助:访问/item/1出现错误
问题解决与机制说明
1. 路由404错误的原因与修复
你的路由定义存在语法错误,Laravel路由参数不需要加$符号,正确写法如下:
Route::get('/item/{id}', function($id) { return view('item'); });
原代码里的{$id}格式不符合Laravel路由规则,导致框架无法识别该路由,因此访问metagigs.test/item/1时匹配不到对应路由,返回404错误。
2. Blade模板变量渲染问题修复
当前item.blade.php中的{{id}}无法正常渲染,需要两步修正:
- 模板中变量需带
$,改为{{ $id }} - 路由闭包需将参数传递给视图,修改后的完整路由代码:
Route::get('/item/{id}', function($id) { return view('item', compact('id')); // 也可以写成 return view('item', ['id' => $id]); });
Laravel路由与Blade基础机制说明
- 路由匹配:Laravel路由参数用
{参数名}定义,参数名无需加$,当请求URL与路由规则匹配时,参数值会自动传递到闭包或控制器方法中。 - Blade渲染:Blade通过
{{ 变量 }}输出内容,变量必须从路由/控制器通过view()的第二个参数(数组或compact()函数)传递,模板才能读取到对应数据并渲染。
内容的提问来源于stack exchange,提问作者Kai Shah
相关产品推荐
相关产品推荐

