我尝试创建一个只有一个文本字段和一个隐藏字段的表单,我将数据传递给HTTP API时使用,所以我没有模型与之相关联,并且通过扩展,没有变更集。
是否可以这样做并使用form_for
或者只是编写HTML来创建表单?
答案 0 :(得分:29)
您可以使用form_for/4传递Plug.Conn
作为第一个参数。
来自the docs(特别是“有连接数据”部分):
form_for / 4期望作为第一个参数实现Phoenix.HTML.FormData协议的任何数据结构。 By default, Phoenix implements this protocol for Plug.Conn,允许我们仅根据连接信息创建表单。
当您创建不受任何类型的模型数据支持的表单(如搜索表单)时,这非常有用。
<%= form_for @conn, search_path(@conn, :new), [as: :search], fn f -> %>
<%= text_input f, :for %>
<%= submit "Search" %>
<% end %>