在没有模型或变更集的情况下使用form_for

Spi*_*ein 17 elixir phoenix-framework

我正在尝试创建一个只有一个文本字段和一个隐藏字段的表单,我将在将数据传递给HTTP API时使用,因此我没有与之关联的模型,并且通过扩展,没有变更.

是否可以这样做并使用form_for或只是编写HTML来创建表单的答案?

Gaz*_*ler 30

您可以使用form_for/4传递a Plug.Conn作为第一个参数.

文档(特别是"带连接数据"部分):

form_for/4期望作为第一个参数实现Phoenix.HTML.FormData协议的任何数据结构.默认情况下,Phoenix为Plug.Conn实现此协议,允许我们仅基于连接信息创建表单.

当您创建不受任何类型的模型数据支持的表单(如搜索表单)时,这非常有用.

<%= form_for @conn, search_path(@conn, :new), [as: :search], fn f -> %>
  <%= text_input f, :for %>
  <%= submit "Search" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

  • 不推荐使用`name`关键字,新的关键字在`form_for`中为`as`. (3认同)