当用户登录后,是可以有删除功能的,点击删除,就可以删除一篇文章。删除文章功能不需要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}}
<div class="home-block-item-udpate">
<a href='javascript:if(confirm("确定删除吗?")){location="{{.DeleteLink}}}"}'>删除</a>
<a href={{.UpdateLink}}>修改</a>
</div>
{{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/,并且要登录,才能有删除功能。
我们删除第一篇文章,点击删除按钮。然后弹出确认框,选择确定。就会删除第一篇文章。然后跳转到首页。
我们发现首页已经没有第一篇文章了,此时也可以查询一下数据库:
我们发现数据库中id为1的文章已经被删除。