Laravel 9资源路由下链接重复问题:重启服务器后路径异常
解决Laravel资源路由下链接重复前缀的问题
问题根源
你使用的是相对路径生成链接,当当前页面URL为127.0.0.1:8000/cars时,点击相对路径cars/{{ $car['id'] }}/edit会自动拼接成127.0.0.1:8000/cars/cars/1/edit,这就是重复前缀出现的原因。
适配资源路由的两种解决办法
方法1:利用资源路由自带的命名路由
Laravel的Route::resource会自动生成对应命名路由,其中编辑页面的路由名称为cars.edit,直接用route()方法生成正确URL即可:
<a href="{{ route('cars.edit', $car['id']) }}">Edit →</a>
如果$car是Eloquent模型实例,还可以直接传入模型,Laravel会自动提取ID:
<a href="{{ route('cars.edit', $car) }}">Edit →</a>
方法2:使用根路径开头的绝对路径
在路径前添加/,让链接基于根域名生成:
<a href="/cars/{{ $car['id'] }}/edit">Edit →</a>
验证资源路由命名(可选)
若不确定资源路由的命名,可运行Artisan命令查看完整路由列表:
php artisan route:list
你会看到cars.edit对应的URI正是/cars/{car}/edit,与需求完全匹配。
内容的提问来源于stack exchange,提问作者Indeche Ojukwu
相关产品推荐
相关产品推荐

