【发布时间】:2022-01-16 07:58:35
【问题描述】:
使用 Laravel 8 + Livewire: 我正在关注创建动态下拉列表的教程:https://www.itsolutionstuff.com/post/laravel-livewire-dependant-dropdown-exampleexample.html
我有这个下拉组件:
public $suppliers;
public $beans;
public $selectedSupplier = NULL;
public function mount()
{
$this->suppliers = Supplier::whereHas('greenBeans')->get();
$this->beans = collect();
}
public function render()
{
return view('livewire.admin.supplier-beans-dropdown')->layout('layouts.admin.livewire');
}
public function updatedSelectedSupplier($supplier)
{
if (!is_null($supplier)) {
$this->selectedSupplier = Supplier::find($supplier);
$this->beans = $this->selectedSupplier->greenBeans;
}
}
组件的刀片:
<div>
<div class="form-group">
<label for="supplier" class="col-md-4 form-label">Supplier</label>
<select wire:model.lazy="selectedSupplier" class="form-control">
<option value="" selected>Select Supplier</option>
@foreach($suppliers as $supplier)
<option value="{{ $supplier->id }}">{{ $supplier->name }}</option>
@endforeach
</select>
</div>
@if (!is_null($selectedSupplier))
<div class="form-group">
<label for="bean" class="form-label">Green Bean</label>
<select class="form-control" name="bean" wire:model.lazy="selectedBean">
<option value="" selected>Select Green Bean...</option>
@foreach($beans as $bean)
<option value="{{ $bean->id }}">{{ $bean->name }}</option>
@endforeach
</select>
</div>
@endif
我还有一个需要调用此下拉列表的组件。所以在这个父组件中我有这个 var: $selectedSupplier 并且在视图中我调用了下拉组件:
@livewire('admin.supplier-beans-dropdown')
当我选择供应商并提交表单时,selectedSupplier 为空。
那么如何在不同的组件中使用这个下拉菜单呢? 如何将选中的值发送给父组件?
【问题讨论】:
-
如果相关问题,您可以发布组件的刀片或至少是html部分代码吗?
标签: laravel-8 laravel-livewire cascadingdropdown