gpt4 book ai didi

templates - 尝试将参数传递给 url 时索引超出范围

转载 作者:数据小太阳 更新时间:2023-10-29 03:29:14 27 4
gpt4 key购买 nike

我目前使用 revel 作为基础网络框架。我的模板/逻辑非常基础。我从数据库中获取一个 []*someObject 并希望将其显示在表格中。

{{ if .objs}}
{{ range .objs }}
<tr>
<td><span>{{ .Title }}</span></td>
<td>x</td>
<td>y</td>
{{ $id := .Id}}
<td><a href="{{url "ObjectController.ViewObj" .Id}}">View {{ $id }}</a></td>
</tr>
{{ end }}
{{ end }}

然而,这会产生“模板运行时错误,索引超出范围”,没有更多信息。问题是 url 部分。

{{url "ObjectController.ViewObj"}}

有效。没有额外的 .Id 就完全没问题了,但是因为我想将 id 传递到 url 中,所以这不是一个选项。

路线是:

/lobby/view/:objid                  ObjectController.View

编辑(已修复):显然我忘了添加 id 作为参数:

func (c ObjectController) View(id int64) revel.Result

我不知道它会抛出这样的错误,我希望有一个更具体的错误。

最佳答案

您可能在路由文件中缺少路由参数。

当您尝试获取带有参数 (Id) 的 URL 时,到 ObjectController.ViewObj 的路由应该如下所示:

GET /your/route/:id ObjectController.ViewObj

如果您忘记了 :id,那么在尝试反转 URL 时会出现“索引超出范围”错误。

关于templates - 尝试将参数传递给 url 时索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23294423/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com