控制器

未匹配的标注

在本章节中,我们将学习控制器是如何工作的,以及如何生成控制器。

什么是控制器

控制器就是MVC中C的部分,他负责路由所对应的逻辑实现部分,负责返回正确的响应。

在Buffalo中,我们正常称控制器为actions。

定义一个action

Buffalo的action函数都是buffalo#Handler 函数,

func Home(c buffalo.Context) error {
    return c.Render(200, r.HTML("home.html"))
}

在本例中,我们定义了一个叫Home的action,从home.html模板渲染内容返回,并且返回的http状态为200。
每个action都接受一个buffalo.Context作为参数。通过他我们可以获取到本次request的上下文信息。看 上下文 章节了解上下文相关内容。

自动生成action

Buffalo提供了一个工具帮我们自动生成action模板内容。减少我们重复的冗余的劳动。
查看帮助,看看怎么使用此工具

$ buffalo g action --help
Generates new action(s)
Usage:
  buffalo generate action [name] [actionName...] [flags]

Aliases:
  action, a, actions

通过buffalo g action [name] [actionName...]

$ buffalo g action users show index create
--> templates/users/show.html
--> templates/users/index.html
--> templates/users/create.html
--> actions/users.go
--> actions/users_test.go
--> goimports -w .

有时候我们需要指定http方法。

$ buffalo g action users message --method POST

也可以通过指定 --skip-template 标识,告诉系统不用生成模板文件。

$ buffalo g action users update --skip-template

销毁action

删除已经存在的action

$ buffalo destroy action users

或者通过别名

$ buffalo d a users

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
superwen
讨论数量: 0
发起讨论 查看所有版本


暂无话题~