<div class="row">
<div class="col">
<div class="container">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col">
<div class="mb-5">
<label class="form-label">Order: </label>
<select wire:change="selectOrder($event.target.value)">
@foreach($orders as $option)
<option value="{{$option['id']}}">{{$option['id']}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
public function selectOrder($order)
{
$this->order = $order;
$this->products = $this->order->products;
}
这是一个带有选择输入的火线组件,在更改选择时我需要使用所选值执行函数 selectOrder
,我使用 $event
魔术操作,但出现以下错误。
答案 0 :(得分:1)
$event
是 Alpine.js 的魔法属性。
因此,解决此问题的一种方法是使用调用 Livewire 方法的 Alpine.js 事件侦听器。
<select x-on:change="$wire.selectOrder($event.target.value)">
也就是说,您可以使用 Livewire 类中的属性,并将选择绑定到模型,
<select wire:model="orderValue">
然后在组件中监听那个变化。
public $orderValue;
// ...
public function updated($field, $value)
{
if ($field === 'orderValue') {
$this->selectOrder($value);
}
}