Laravel路由携带可变ID参数访问报错该如何正确配置?
Laravel编辑路由404问题修复方案
错误原因
你在web.php路由配置文件中误用了Blade模板的插值语法{{ $cars->id }},路由配置是PHP执行逻辑,不会解析Blade语法,会将{{ $cars->id }}当成固定的URL路径片段,无法匹配实际请求中带数字ID的路径,所以触发404报错。
修正方法
- 修改路由定义,用
{参数名}的格式定义动态路由参数,正确写法如下:
Route::get('/cars/edit/{id}', function (Request $request, $id) { // 这里直接使用$id即可获取URL携带的条目ID // 示例查询逻辑:$car = Car::findOrFail($id); });
- 你现有Blade模板中的a标签写法无需调整,
/cars/edit/{{$car->id}}会正常渲染为带对应ID的访问链接,和路由规则完全匹配。
可选优化(推荐)
可以给路由设置别名,后续修改路由路径无需同步调整模板链接,降低维护成本:
- 路由配置修改为:
Route::get('/cars/edit/{id}', function (Request $request, $id) { // 业务逻辑 })->name('cars.edit');
- 模板a标签修改为:
<a href="{{ route('cars.edit', $car->id) }}">编辑</a>
内容的提问来源于stack exchange,提问作者Varun Sharma
相关产品推荐
相关产品推荐

