草庐IT

go - Beego Raw.QueryRows,模板

coder 2023-06-27 原文

我试着用beego来进行木板寻呼。
所以我是这样做的,
在控制器中

var articles []*models.Board
board.Data["startCount"] = startCount
board.Data["endCount"] = endCount

/* Template Test Query
num, err := o.QueryTable("board").Filter("Idx", 21).OrderBy("-idx").All(&articles)
*/

num, err := o.Raw("SELECT board.* FROM(SELECT @ROWNUM := @ROWNUM + 1 AS ROWNUM, board.* FROM board, (SELECT @ROWNUM := 0) R) board WHERE board.ROWNUM > ?;", 0).QueryRows(&articles)
if num == 0 || err == orm.ErrNoRows {
    board.Data["user_error"] = err
}
if err != orm.ErrNoRows && num > 0 {
    board.Data["nums"] = num
    board.Data["articles"] = articles
}

在VEIW文件中
<tbody>
    {{ if not .articles }}
    <tr>
      <td colspan="5">No articles.</td>
    </tr>
    {{ else }}
    {{ $uri := .article_uri}}
    {{range $articles := .articles}}
    <tr>
      <td>{{$articles.Idx}}</td>
      <td><a href="{{urlfor "BoardController.Content" ":id" $articles.Idx}}">{{$articles.Title}}</a></td>
      <td>{{$articles.Nick}}</td>
      <td>{{date $articles.Date "y.m.d H:i"}}</td>
      <td>0</td>
    </tr>
    {{ end }}
    {{ end }}
</tbody>

当我使用模板测试查询时,我看到了成功打印。
但我只能看到空表,因为它被更改为O.raw(…).queryrows(&articles)
请有人帮我……

模型
type Board struct{
Idx int64       `orm:"pk";form:"-"`
Id string       `form:"id"`
Title string    `form:"title"`
Body string     `form:"content"`
Nick string     `form:"nick"`
Date time.Time  `orm:"auto_now_add;type(datetime)"`
}

最佳答案

在控制器中

```
o := orm.NewOrm()
var maps []orm.Params
num, err := o.Raw("SELECT board.* FROM(SELECT @ROWNUM := @ROWNUM + 1 AS ROWNUM, board.* FROM board, (SELECT @ROWNUM := 0) R) board WHERE board.ROWNUM > ?;", 0).Values(&maps)
fmt.Println(maps)
if num == 0 || err == orm.ErrNoRows {
    board.Data["user_error"] = err
}
if err != orm.ErrNoRows && num > 0 {
    board.Data["nums"] = num
    board.Data["articles"] = articles
}
```

价值平面图
```
var list orm.ParamsList
num, err = o.Raw(""SELECT board.* FROM(SELECT @ROWNUM := @ROWNUM + 1 AS ROWNUM, board.* FROM board, (SELECT @ROWNUM := 0) R) board WHERE board.ROWNUM > ?;", 0).ValuesFlat(&list)
if err == nil && num > 0 {
    fmt.Println(list) // []{"1","2","3",...}
}
```

请参见演示URLhttps://beego.me/docs/mvc/model/rawsql.md#queryrows
但是我喜欢用JSON所以
```
  o := orm.NewOrm()   
        var maps []orm.Params
        o.Raw("SELECT board.* FROM(SELECT @ROWNUM := @ROWNUM + 1 AS ROWNUM, board.* FROM board, (SELECT @ROWNUM := 0) R) board WHERE board.ROWNUM > ?;", 0).Values(&maps)
        list := make([]map[string]interface{}, len(maps))   
        for k, v := range maps {
            row := make(map[string]interface{})
            row["Idx"]=v["workid"]
            row["Id"] = v["droneid"]
            row["Title"]=v["starttime"]
            row["Body"]=v["worktime"]
            row["Nick"]=v["modes"]
            row["Date"]=v["tele"]
            paths := make([]interface{}, 0)
            patharray := strings.Split(v["path"].(string),"],[") 
            for _, vv := range patharray {
                path := make([]string, 2)
                vv1 := strings.Replace(vv,"[", "", -1)
                vv2 := strings.Replace(vv1,"]","",-1)
                //fmt.Println(vv2)
                vvarr := strings.Split(vv2,",")
            //  fmt.Println("++++++++++++++")
                // fmt.Println(vvarr)
                path[0] = vvarr[0]
                path[1] = vvarr[1]
                paths = append(paths, path)
            }
            row["path"] = paths
            list[k] = row
        }
        this.Data["json"] = list
         this.ServeJSON(); 
```

关于go - Beego Raw.QueryRows,模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32295038/

有关go - Beego Raw.QueryRows,模板的更多相关文章

  1. ruby - 通过 erb 模板输出 ruby​​ 数组 - 2

    我正在使用puppet为ruby​​程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby​​不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这

  2. ruby-on-rails - Mandrill API 模板 - 2

    我正在使用Mandrill的RubyAPIGem并使用以下简单的测试模板:testastic按照Heroku指南中的示例,我有以下Ruby代码:require'mandrill'm=Mandrill::API.newrendered=m.templates.render'test-template',[{:header=>'someheadertext',:main_section=>'Themaincontentblock',:footer=>'asdf'}]mail(:to=>"JaysonLane",:subject=>"TestEmail")do|format|format.h

  3. ruby - Chef Ruby 遍历 .erb 模板文件中的属性 - 2

    所以这可能有点令人困惑,但请耐心等待。简而言之,我想遍历具有特定键值的所有属性,然后如果值不为空,则将它们插入到模板中。这是我的代码:属性:#===DefaultfileConfigurations#default['elasticsearch']['default']['ES_USER']=''default['elasticsearch']['default']['ES_GROUP']=''default['elasticsearch']['default']['ES_HEAP_SIZE']=''default['elasticsearch']['default']['MAX_OP

  4. ruby - 如何通过Middleman安装和使用Slim模板引擎 - 2

    一般来说,我是Middleman和ruby​​的新手。我已经安装了Ruby我已经安装了Middleman和gem以使其运行。我需要使用slim而不是默认的模板系统。所以我安装了Slimgem。Slim的网站只说我需要'slim'才能让它工作。中间人网站说我只需要在config.rb文件中添加模板引擎,但是没有给出例子...对于没有ruby​​背景的人来说,这没有帮助。我在git上找了几个config.rb,它们都有:require'slim'和#Setslim-langoutputstyleSlim::Engine.set_default_options:pretty=>true#Se

  5. ruby-on-rails - Textmate 'Go to symbol' 相当于 Vim - 2

    在Railcasts上,我注意到一个非常有趣的功能“转到符号”窗口。它像Command-T一样工作,但显示当前文件中可用的类和方法。如何在vim中获取它? 最佳答案 尝试:helptags有各种程序和脚本可以生成标记文件。此外,标记文件格式非常简单,因此很容易将sed(1)或类似的脚本组合在一起,无论您使用何种语言,它们都可以生成标记文件。轻松获取标记文件(除了下载生成器之外)的关键在于格式化样式而不是实际解析语法。 关于ruby-on-rails-Textmate'Gotosymbol

  6. ruby-on-rails - 如何将变量值插入 ERB 模板中的 HTML 标签? - 2

    我有一个偏爱:如何将像o.office这样的值插入到属性中?value="#{o.office}"无效。 最佳答案 'type='text'/>或者你可以使用表单助手 关于ruby-on-rails-如何将变量值插入ERB模板中的HTML标签?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6172174/

  7. ruby - 输出液体模板中的可用对象和属性 - 2

    有没有办法在liquidtemplate中输出(用于调试/信息目的)可用对象和对象属性??也就是说,假设我正在使用jekyll站点生成工具,并且我在我的index.html模板中(据我所知,这是一个液体模板)。它可能看起来像这样{%forpostinsite.posts%}{{post.date|date_to_string}}»{{post.title}}{%endfor%}是否有任何我可以使用的模板标签会告诉我/输出名为post的变量在此模板(以及其他模板)中可用。此外,是否有任何模板标签可以告诉我post对象具有键date、title、url、摘录、永久链接等

  8. python - 图灵完备模板引擎 - 2

    很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。哪些模板引擎/模板语言是图灵完备的?到目前为止,我听说过这些:FreeMarker(用java实现)MovableTypes模板语言(perl)xslt:-(Cheetah(Python语言)聪明(PHP)还有其他的(特别是用perl实现的)吗?Ps:不要浪费时间向我解释MVC,以及为什么图灵完整模板不好,以及为什么这不是一个有用的比较点:)

  9. ruby - 迭代液体模板中的数组 - 2

    我知道我可以用这段代码迭代liquid模板中的数组:{%foriteminmyarray%}{{item.label}}但是我怎样才能得到我的项目在数组中的索引呢? 最佳答案 根据"LiquidforDesigners"liquid的github部分...forloop.length#=>lengthoftheentireforloopforloop.index#=>indexofthecurrentiterationforloop.index0#=>indexofthecurrentiteration(zerobased)forl

  10. ruby - 液体模板贴图过滤器 - 2

    究竟如何使用Liquid中的map过滤器?我在Jekyll中使用它。---my_array:[apple,banana,orage]my_map:hello:worldfoo:barmy_string:"howdoesthiswork?"---{{page.my_map|map...}}这就是我迷路的地方。我似乎无法在文档或任何其他在线网站上找到任何关于它的用法示例。顺便说一下,我还不懂Ruby,所以sourcecode我也不清楚。来自filtertests看起来下面应该产生一些东西,但在GitHub上,我什么也没得到:{{site.posts|map:'title'|array_to

随机推荐