首页 > 解决方案 > “Laravel Livewire” 在循环内主动更新产品的数量导致输入值彼此同步

问题描述

我希望有人可以帮助我,因为我是编程新手。我一直在构建一个汽车零部件搜索引擎,显示从循环中选择的零件,在后端似乎工作起来就像一个魅力,每当我提交任何新数量时,它都会立即更新该项目的数据库但是“所有输入都同步在一起如果我更改输入框中的值,所有其他值也会更改,但它只会更新我选择的值(按预期)。

我尝试删除仅保留的操作之一wire:click,但我不知道如何将输入值发送到函数,如果离开wire:model我不知道如何使其触发函数,谢谢您的回答.

我的观点:

@foreach($carparts as $carpart)
    <input type="number"
           id="qty"
           name="qty"
           value="{{$carpart->qty}}"
           wire:click="updateqty({{$carpart->id}})"
           wire:model="newQty">
    <p>{{$carpart->name}}</p>
@endforeach

我的控制器:

public $newQty;

public function updateqty($id)
{
    $partqty = Mypart::findOrFail($id);
    $partqty->qty = $this->newQty;
    $partqty->save();
}

public function render()
{
    return view('livewire.selectparts', [
        'carparts' => Mypart::where('mycar_id', $this->mycar)->get()
    ]);
}

mycar 是选定的汽车

标签: phplaravelinputforeachlaravel-livewire

解决方案


推荐阅读