【发布时间】:2021-10-26 18:28:58
【问题描述】:
我有一个父视图 edit.blade.php 有一个表单。表单有一个 @livewire() 用于 edit-step.blade.php,子组件。
edit-step.blade.php 有一个用于呈现输入字段的 foreach 循环。在某一时刻,foreach 将循环三个 input 字段。提交按钮位于父视图 edit.blade.php 中。提交时,最后一个输入字段中的数据是唯一提交的数据。如何提交来自所有输入字段的数据?
edit.blade.php 文件:
<form method="post" action="{{route('todo.update', $todo->id)}}" class="py-5">
@csrf
@method('patch')
<div class="py-1"><input type="text" name="title" value="{{$todo->title}}" class="py-2 px-2 border rounded" placeholder="Title" /></div>
<div class="py-1">
<textarea name="description" class="p-2 rounded border" placeholder="Description">{{$todo->description}}</textarea>
</div>
<div class="py-2">
@livewire('edit-step', ['steps' => $todo->steps])
</div>
<div class="py-1"><input type="submit" value="Update" class="p-2 border rounded" /></div>
</form>
edit-step.blade.php 文件:
@foreach($steps as $step)
<div class="flex justify-center py-2" wire:key="{{$loop->index}}" >
<input type="text" name="step_" class="py-1 px-2 border rounded" placeholder="{{ 'Describe Step '.($loop->index + 1) }}" @if ( is_object($step) ) value="{{ $step->name }}" @endif />
<span class="fas fa-times text-red-400 p-2" wire:click="remove({{$loop->index}})"/>
</div>
@endforeach
【问题讨论】:
-
这里是使用 livewire 的多步表单示例。 ascsoftwares.com/technology/multi-step-form-using-livewire/…
标签: php arrays laravel laravel-blade laravel-livewire