Goweb开发之Beego框架实战:第十二节 删除文章功能

当用户登录后,是可以有删除功能的,点击删除,就可以删除一篇文章。删除文章功能不需要view页面,直接弹框确认即可,现在我们来实现model和controller部分。

一、Model

在article_model.go文件中,添加 删除文章的方法:

//----------删除文章---------
func DeleteArticle(artID int) (int64, error) {
    i, err := deleteArticleWithArtId(artID)
    SetArticleRowsNum()
    return i, err
}
​
func deleteArticleWithArtId(artID int) (int64, error) {
    return utils.ModifyDB("delete from article where id=?", artID)
}

删除的时候,肯定是根据文章的ID来删除,当点击删除按钮的时候,可以传过来文章ID。

{{if .IsLogin}}
    
{{end}}

二、Controller

接下来,我们实现controller部分,在controllers目录下,创建一个新的go文件:delete_article_controller.go

package controllers
​
import (
    "fmt"
    "myblogweb/models"
    "log"
)
​
type DeleteArticleController struct {
    BaseController
}
​
//点击删除后重定向到首页
func (this *DeleteArticleController) Get() {
    artID, _ := this.GetInt("id")
    fmt.Println("删除 id:", artID)
​
    _, err := models.DeleteArticle(artID)
    if err != nil {
        log.Println(err)
    }
    this.Redirect("/", 302)
}

先接收要删除的文章ID,然后操作sql语句进行删除数据,自后重定向到首页上。接下来注册个新的路由:

// 删除文章
beego.Router("/article/update", &controllers.DeleteArticleController{})

三、运行

重启项目后,打开浏览器输入:http://127.0.0.1:8080/,并且要登录,才能有删除功能。

Goweb开发之Beego框架实战:第十二节 删除文章功能_第1张图片

我们删除第一篇文章,点击删除按钮。然后弹出确认框,选择确定。就会删除第一篇文章。然后跳转到首页。

Goweb开发之Beego框架实战:第十二节 删除文章功能_第2张图片

我们发现首页已经没有第一篇文章了,此时也可以查询一下数据库:

Goweb开发之Beego框架实战:第十二节 删除文章功能_第3张图片

我们发现数据库中id为1的文章已经被删除。

你可能感兴趣的:(716466308:资源交流群)