Laravel 5 Laravel,如何从动态输入更新数据?

Laravel 5 Laravel,如何从动态输入更新数据?,laravel-5,Laravel 5,如何使用动态输入从动态表单更新数据? 我尝试先从表中删除所有id为的数据,然后像创建时一样插入数据,但它总是停留在动态表单的1行上 比如: 名称|页面|操作 测试1 | 22 |添加更多 测试2 | 24 |移除 测试3 | 23 |移除 当我保存它时,它只保存带有“Test1”的行 更新控制器: public function update(Request $request, Vote $vote) { $request->validate([ 'item.*.n

如何使用动态输入从动态表单更新数据? 我尝试先从表中删除所有id为的数据,然后像创建时一样插入数据,但它总是停留在动态表单的1行上

比如: 名称|页面|操作 测试1 | 22 |添加更多 测试2 | 24 |移除 测试3 | 23 |移除

当我保存它时,它只保存带有“Test1”的行

更新控制器:

public function update(Request $request, Vote $vote)
{
    $request->validate([
        'item.*.name' => 'required|string|max:191',
        'item.*.page' => 'nullable|string',
    ]);

    if(!$vote->vote_options->isEmpty()) {
        VoteOption::where('vote_id', $vote->id)->delete();
        //$vote->vote_options()->delete();
    }

    foreach($request->item as $key => $value) {
        $vote->vote_options()->create($value);

        return redirect()->route('admin.votes.view');
    }

    return redirect()->route('admin.votes.options.edit', $vote->id);
}
//编辑

<tbody>
                                @forelse ($vote_options as $option)
                                    <tr>
                                        <td><input type="text" name="item[{{ $loop->index }}][name]" placeholder="Zde napiš jméno kandidáta" class="form-control form-control-alternative" value="{{ $option->name }}" /></td>
                                        <td><input type="text" name="item[{{ $loop->index }}][page]" placeholder="Zde napiš jméno strany" class="form-control form-control-alternative" value="{{ $option->page }}" /></td>
                                        @if ($loop->first)
                                            <td><button type="button" name="addItem" id="addItem" class="btn btn-success">Přidal další</button></td>
                                            <td style="display: none;" id="voteCount" data-count="{{ $loop->count }}"></td>
                                        @else
                                            <td><button type="button" class="btn btn-danger removeItem">Smazat</button></td>
                                        @endif
                                    </tr>
                                @empty
                                    <tr>
                                        <td><input type="text" name="item[0][name]" placeholder="Zde napiš jméno kandidáta" class="form-control form-control-alternative" /></td>
                                        <td><input type="text" name="item[0][page]" placeholder="Zde napiš jméno strany" class="form-control form-control-alternative" /></td>
                                        <td><button type="button" name="addItem" id="addItem" class="btn btn-success">Přidal další</button></td>
                                        <td style="display: none;" id="voteCount" data-count="1"></td>
                                    </tr>
                                @endforelse
                            </tbody>
它工作得很好


谢谢你的建议,也许这样做不好://

添加html表单检查输入是否正确、是否忘记、是否完成
let items = $('#voteCount').data('count') - 1;

$("#addItem").click(function() {
    ++items;

    $("#optionsTable").append('<tr><td><input type="text" name="item[' + items + '][name]" placeholder="Zde napiš jméno kandidáta" class="form-control form-control-alternative" /></td><td><input type="text" name="item[' + items + '][page]" placeholder="Zde napiš jméno strany" class="form-control form-control-alternative" /></td><td><button type="button" class="btn btn-danger removeItem">Smazat</button></td></tr>');
});

$(document).on('click', '.removeItem', function(){
     $(this).parents('tr').remove();
});
VoteOption::where('vote_id', $vote->id)->delete();