本文是 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

piyopiyo.exポータルチュートリアル 1章~コマンド一発でWebアプリケーションを作ってみる~

生成成功后,生成下一个生成程序对应的表。

安慰
mix ecto.migrate

piyopiyo.exポータルチュートリアル 1章~コマンド一発でWebアプリケーションを作ってみる~

将生成的默认端点添加到您的路由器

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 页面有效。

piyopiyo.exポータルチュートリアル 1章~コマンド一発でWebアプリケーションを作ってみる~

单击新消息以打开消息注册对话框。

piyopiyo.exポータルチュートリアル 1章~コマンド一発でWebアプリケーションを作ってみる~

输入所需信息并单击保存按钮以注册消息。

piyopiyo.exポータルチュートリアル 1章~コマンド一発でWebアプリケーションを作ってみる~

为了稍后查看修复结果,重复同样的操作,一共注册了6条消息。

piyopiyo.exポータルチュートリアル 1章~コマンド一発でWebアプリケーションを作ってみる~

修复模型实现

修改现有的 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,并且按照与注册相反的顺序。

piyopiyo.exポータルチュートリアル 1章~コマンド一発でWebアプリケーションを作ってみる~

下一章

相关信息

  • MessagesMVC 生成后的存储库部分

  • 本练习结束时的存储库横截面


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308631129.html

相关文章: