Массив хранилища Laravel livewire не может хранить данные

У меня есть поле ввода, и это поле ввода является множественным. У меня проблема с сохранением этого ввода в базу данных, потому что я думаю, что ошибся при создании этого ввода запроса. это мое поле ввода

<form>
<button wire:click.prevent="add()">
    Add
</button>

@foreach($inputs as $key => $value)
<input type="hidden" wire:model="inputs.{{ $key }}.newid" value="{{ $key }}">
<input wire:model="inputs.{{ $key }}.nama_barang" type="text" />
<input wire:model="inputs.{{ $key }}.qtt" type="text" />
<input wire:model="inputs.{{ $key }}.price" type="text" />
<input wire:model="inputs.{{ $key }}.qty" type="text" />
<input value="{{ (int)$value['price'] * (int)$value['qty']  }}" type="text" />
<br>
@endforeach

<button wire:click.prevent="store()">Submit</button>

и это моя функция livewire

 public $belanja_id, $nama_barang, $qtt,$newid;
public $updateMode = false;

public $i = 1;
public $total ;
public $price= [] ;
public $qty = [];

public $inputs = [
    [
        "newid" => "",
        "nama_barang" => "",
        "qtt" => "",
        "price" => "",
        "qty" => "",
        "total_price" => "",
    ]
];

public function add($i)
{
    array_push($this->inputs, [
        "newid" => "",
        "nama_barang" => "",
        "qtt" => "",
        "price" => "",
        "qty" => "",
        "total_price" => "",
    ]);
}
 public function store()
{
  
    foreach ($this->inputs as $key => $value) {
        $bel = AnakBelanja::create([
            'belanja_id' => $this->newid,
            'nama_barang' => $this->nama_barang[$key], 
            'qtt' => $this->qtt[$key],
            'price' => $this->price[$key],
            'qty' => $this->qty[$key]
            ]);        
        }

    $this->inputs = [];

    $this->resetInputFields();


    return redirect()->route('detail', $bel->belanja_id);

}

этот ввод имеет ошибку

Попытка получить доступ к смещению массива по значению типа null

может кто-нибудь помочь в этом? Спасибо


person Adhik Mulat    schedule 23.10.2020    source источник


Ответы (1)


Я думаю, что переменная $i отсутствует, ваша функция add должна быть похожа на следующий код, после изменения она должна хранить все данные.

 public function add($i)
{
    $i = $i + 1;
    $this->i = $i;
    array_push($this->inputs ,$i);
}
person nawt12    schedule 10.12.2020