【问题标题】:Data from a Livewire sub-form missing in request请求中缺少来自 Livewire 子表单的数据
【发布时间】:2022-01-11 15:45:38
【问题描述】:

在 Laravel 中,我使用 livewire 来动态渲染 HTML 表单的一部分。主要形式是一个常规的 Laravel 刀片文件,而不是 Livewire 组件。但是,提交表单时,$request 变量中缺少 livewire 子表单中的字段值。

包含 livewire 组件的 edit.blade.ph 的 sn-p。此文件是常规视图刀片文件,而不是 Livewire 组件

<div class="row mb-3">
  <textarea id="address" type="text" class="form-control @error('address') is-invalid @enderror" name="address" required autocomplete="address" rows="3">{{ $player->address}}</textarea>
</div>
@livewire('address-input', ['player'=> $player])
<div class="row mb-3">                                    
    <textarea id="description" type="text" class="form-control @error('description') is-invalid @enderror" name="description" required autocomplete="description" rows="3">{{ $player->description}}</textarea>
</div>

Livewire 组件地址-input.blade.php

<div class="row mb-3">
    <label for="region" class="col-md-4 col-form-label text-md-end">{{ __('Region') }}</label>

    <div class="col-md-6">
        <select wire:model="region" class="form-select" aria-label="Region Label">
            <option selected>Select Region</option>
            @foreach($regions as $region)
                <option value="{{$region->id}}">{{$region->region_name}}</option>
            @endforeach
        </select>
    </div>
</div>

<div class="row mb-3">
    <label for="province" class="col-md-4 col-form-label text-md-end">{{ __('Province') }}</label>

    <div class="col-md-6">
        <select wire:model="province" class="form-select" aria-label="Province Label">
            <option selected>Select Province</option>
            @foreach($provinces as $province)
                <option value="{{$province->id}}">{{$province->name}}</option>
            @endforeach
        </select>

    </div>
</div>

<div class="row mb-3">
    <label for="municipality" class="col-md-4 col-form-label text-md-end">{{ __('Municipality') }}</label>

    <div class="col-md-6">
        <select wire:model="municipality" class="form-select" aria-label="Province Label">
            <option selected>Select Municipality</option>
            @foreach($municipalities as $municipality)
                <option value="{{$municipality->id}}">{{$municipality->name}}</option>
            @endforeach
        </select>


    </div>
</div>

<div class="row mb-3">
    <label for="barangay" class="col-md-4 col-form-label text-md-end">{{ __('Barangay') }}</label>

    <div class="col-md-6">
        <select id="barangay_id" class="form-select" aria-label="Barangay Label">
            <option selected>Select Barangay</option>
            @foreach($barangays as $barangay)
                <option value="{{$barangay->id}}">{{$barangay->name}}</option>
            @endforeach
        </select>

    </div>
</div>

edit.blade.php 的表单提交时,address-input 子表单的输入字段的值不包含在请求中,具体来说,barangay_id 的值。

dd($request) 的输出。

【问题讨论】:

  • 我认为您需要重新考虑这种情况下的 livewire 点。不是吗?
  • 我倾向于同意您的评论。我是 Livewire 和整个动态页面概念的新手,还没有完全了解这种范式下的“最佳”代码组织/结构。我将其视为一种锻炼形式。我的想法是,既然我正在写的东西就像一个原型,我会同时专注于让这个东西发挥作用。

标签: php laravel forms laravel-8 laravel-livewire


【解决方案1】:

哦,我傻了。

我忘记在字段元素中包含name 属性。

【讨论】:

    猜你喜欢
    • 2016-08-24
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多