Laravel 6 修改视图为表格后出现products.show路由缺少参数报错
问题原因及修复方案
直接触发报错的核心原因
你在调用products.show路由生成URL时,参数传递不符合Laravel 6的解析规则,具体修复可任选以下一种方式:
- 显式指定路由参数名:将视图中的
{{route('products.show',$product)}}修改为{{route('products.show', ['product' => $product])}} - 直接传递主键值:修改为
{{route('products.show', $product->id)}}
注:如果你的Product模型自定义了主键(非默认
id),需要先在模型内声明protected $primaryKey = '你的主键字段名';,否则Laravel读取主键值时会返回空,触发参数缺失报错。
同步需要修正的其他代码问题
你当前的视图代码存在HTML结构错误,虽然不是直接触发路由报错的原因,但会导致页面渲染异常:
@empty分支缺少<tr>开始标签,修正后代码如下:
@empty <tr> <td>null</td> <td>null</td> <td>null</td> <td>null</td> <td>null</td> <td>null</td> <td>null</td> </tr> @endforelse
- 分页链接
{{$products->links()}}不允许放在<tbody>标签内部,需要移动到</table>结束标签的外部,<tbody>内仅允许放置<tr>元素。
内容的提问来源于stack exchange,提问作者jolsoto
相关产品推荐
相关产品推荐

