我需要你的帮助。如何使用路由在以下href中写入?
我有以下路线:
Route::get('/building/{building}/floors', [BuildingController::class, 'floors'])->name('building.floors');
在视图中有:
<td><a href="{{URL::to('/building/' . $building->id . '/floors') }}" class="link-primary">{{ $building->floors }}</a></td>
我试着用下面的方式写它
<td><a href="{{route('building.floors' , ['id' => $building->id])}}" class="link-primary">{{ $building->floors }}</a></td>
但是,我得到了错误,缺少了路由所需的参数: building.floors。
有人能帮帮我吗?
发布于 2022-08-03 08:27:12
不过,['id' => $building->id]是否应该是['building' => $building->id] (因为building是路由中变量的名称)?
发布于 2022-08-03 10:20:42
@Sarah你需要理解这个错误。
请始终记住,此处的Route::get('/building/{building}/floors', [BuildingController::class, 'floors'])->name('building.floors');是您的动态参数名称,因此您需要在使用此路径的任何地方在刀片中传递相同的参数{building}。
如果路由是Route::get('/building/{id}/floors', [BuildingController::class, 'floors'])->name('building.floors');,我们将使用id,因为我们将{id}作为动态参数传递。
在此代码中,/building/{building}/floors,如果您的参数buidling表示的是构建id,则必须在路由文件中使用一个正确和有意义的参数名,如{building_id},并将['building_id' => $building->id]作为表示类/对象名称的生成传递,并且您试图将它的属性id作为参数传递。这有助于避免混淆,也有助于其他开发人员发现阅读和工作都很容易。
https://stackoverflow.com/questions/73218474
复制相似问题