本文是 piyopiyo.ex 门户教程的第 1 章。
本章的目的
在本章中,Phoenix 标准命令用于生成无需设计的可执行 Web 应用程序。
另外,通过修改部分代码,功能也会发生变化。
使用命令行生成默认状态 MVC 实现
使用 phx.gen.Live 命令创建消息上下文显示所需的 MVC 实现。
安慰
mix phx.gen.live Messages Message messages display_name:string message:string deleted_at:naive_datetime
生成成功后,生成下一个生成程序对应的表。
安慰
mix ecto.migrate
将生成的默认端点添加到您的路由器
lib/phoenix_app_web/router.ex
scope "/", PhoenixAppWeb do
pipe_through :browser
get "/", PageController, :index
# add message default routing
live "/messages", MessageLive.Index, :index
live "/messages/new", MessageLive.Index, :new
live "/messages/:id/edit", MessageLive.Index, :edit
live "/messages/:id", MessageLive.Show, :show
live "/messages/:id/show/edit", MessageLive.Show, :edit
end
默认生成的 LivewView 页面有效。
单击新消息以打开消息注册对话框。
输入所需信息并单击保存按钮以注册消息。
为了稍后查看修复结果,重复同样的操作,一共注册了6条消息。
修复模型实现
修改现有的 list_messages/0 函数,
- 如果没有参数,则响应数最多为5个,并按照更新日期的降序排列。
- 如果指定字符串“all”,则按照更新日期的降序对所有数据进行排序
实现两个功能
lib/phoenix_app/message.ex
# delete default list function
# @doc """
# Returns the list of messages.
#
# ion
# ## Examples
#
# iex> list_messages()
# [%Mesage{}, ...]
#
# """
# def list_messages do
# Repo.all(Mesage)
# end
# add here
def list_messages("all") do
Message
|> order_by(desc: :updated_at)
|> Repo.all()
end
# add here
def list_messages() do
Message
|> order_by(desc: :updated_at)
|> limit(5)
|> Repo.all()
end
如果您重新加载之前的消息屏幕,您可以确认项目数量已更改为 5,并且按照与注册相反的顺序。
下一章
相关信息
- MessagesMVC 生成后的存储库部分
- 本练习结束时的存储库横截面
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308631129.html