I’m few days old elixir and phoenix user, that’s why maybe this is a simple question to answer but the experience team, but wanted to finally understand and get this things working somehow, already tried everything. One minor note also, have added petal_components (they might be giving me this pain)
Also using all the latest packages
I’m encountering a compilation error related to inputs_for/2
in my LiveView module:
error: undefined function inputs_for/2 (expected ExampleInputs.NewLive to define such a function or for it to be imported, but none are available)
lib/example_inputs/live/new_live.ex:121:15
error: undefined function inputs_for/2 (expected ExampleInputs.NewLive to define such a function or for it to be imported, but none are available)
lib/example_inputs/live/new_live.ex:59:63
error: undefined function inputs_for/2 (expected ExampleInputs.NewLive to define such a function or for it to be imported, but none are available)
lib/example_inputs/live/new_live.ex:64:35
** (CompileError) lib/example_inputs/live/new_live.ex: cannot compile module ExampleInputs.NewLive (errors have been logged)
I’ve tried:
- Importing
Phoenix.HTML.Form
at the top of my LiveView module. - Using
use Phoenix.HTML
as well. - Verifying that
to_form
and other form helpers are working correctly.
Despite these attempts, inputs_for/2
still isn’t recognized. Any suggestions on what I might be missing or how to properly use inputs_for
within a LiveView?
Maybe html logic is wrong?
<div class="space-y-4">
<%= for {item_form, index} <- Enum.with_index(inputs_for(@form, :items)) do %>
<div class="flex items-start space-x-2">
<div class="flex-grow">
<.input field={item_form[:title]} type="text" label="Item Title" required />
</div>
<%= if length(inputs_for(@form, :items)) > 1 do %>
<.button
type="button"
phx-click="remove_item"
phx-value-index={index}
class="mt-8"
variant="ghost"
size="sm"
>
<.icon name="hero-trash" class="w-4 h-4 text-red-500" />
</.button>
<% end %>
</div>
<% end %>
</div>
Packages (main)
# Phoenix Framework
{:phoenix, "~> 1.7.17"},
{:phoenix_html, "~> 4.1.1"},
{:phoenix_live_view, "~> 1.0.0-rc.6", override: true},
{:phoenix_live_dashboard, "~> 0.8.5"},
{:phoenix_live_reload, "~> 1.2", only: :dev},
{:bcrypt_elixir, "~> 3.2.0"},
# Database and Ecto
{:phoenix_ecto, "~> 4.6.3"},
{:ecto_sql, "~> 3.12.1"},
{:postgrex, ">= 0.19.3"},