东林博客

GoFrame如何查数据库和打印数据到模板

Go Frame的模板用法有些奇怪,对比Web页面处理的王者语言PHP模板语法,实在很繁琐。

摸索了好大一会,才弄懂。

查询此博客的类目:

categories,err := g.DB().Table("category").OrderBy("sort asc").Select().ToList()

输出到模板

response.Render(r,"layout.html",g.Map{
   "title":"首页",
   "categories":categories,
   "mainTpl":"home.html",
})
<ul>
    <li>
        <a href="/">首页<span class="sr-only">(current)</span></a>
    </li>
    ${range $key, $item := .categories}
        <li><a href="/category/${index $item "id"}">${index $item "name"}</a></li>
    ${end}
    <li>
        <a href="/about">关于</a>
    </li>
</ul>

核心就是上面的 ${index $item "name"},是从数据表的每行中取出字段name。

${}模板间隔符是我自定义的,因为博客中使用了vue。GoFrame默认的双花括号有冲突。

index的用法参考下面链接。

https://goframe.org/os/gview/funcs#tip3

{{tip}}