我是第一次尝试Livewire。该下拉列表是从数据库填充的。类似的代码适用于文本字段,但不适用于下拉选择字段。
编辑:表单位于bootstrap模式代码中,如下所示: livewire组件(leads-form.blade)
<div class="modal-content">
<form wire:submit.prevent="submit">
@csrf
<div class="input-field col s12">
<label for="role">Client</label>
<select class="error validate" wire:ignore id="client_id" wire:model="client_id">
<option disabled value=" ">Client</option>
@foreach($clients as $client)
<option value="{{$client->id}}"> {{$client->clientname}}</option>
@endforeach
</select>
</div>
<div class="input-field col m12 s12">
<input id="contactperson" type="text" name="contactperson" wire:model="contactperson" />
@error('contactperson') <span class="error"><small>{{ $message }}</small></span> @enderror
<label for="contactperson">Contact Person</label>
</div>
<div class="row">
<div class="row">
<div class="input-field col s12">
<button class="btn cyan waves-effect waves-light right" type="submit">Add
<i class="material-icons right">send</i>
</button>
</div>
</div>
</div>
</form>
</div>
下一个Livewire leads类如下:
class LeadsForm extends Component
{
public $contactperson;
public $client_id;
public function submit()
{
Lead::create([
'client_id' => $this->client_id,
'contactperson' => $this->contactperson,
]);
Alert::toast('Client created successfully', 'success');
return $this->redirectRoute('leads.index');
}
public function render()
{
$clients = Client::all();
return view('livewire.leads-form',[
'clients'=>$clients,
]);
}
}
我使用的是laravel调试栏,它将数组client_id字段显示为空。
发布于 2021-05-02 15:57:40
删除select元素中的wire:ignore,这样可以避免产生任何可以包装到后端的Livewire事件
<select class="error validate" wire:ignore id="client_id" wire:model="client_id">
<option disabled value=" ">Client</option>
@foreach($clients as $client)
<option value="{{$client->id}}"> {{$client->clientname}}</option>
@endforeach
</select>
https://stackoverflow.com/questions/67358057
复制相似问题