【发布时间】:2020-07-03 01:47:43
【问题描述】:
我正在尝试使用 Laravel Livewire,我遇到了一种情况,即使表单提交成功,也会显示以前的错误。
点击保存之前
点击保存后
刀片文件customer-new.blade.php中name的HTML片段。
<div class="form-group">
<div class="border rounded-0 px-1">
<label class="mb-0" for="name">Name</label>
<input wire:model="name" type="text" class="form-control form-control-sm " id="customer-name" aria-describedby="customer-nameHelp">
</div>
@error('name') <span class="err-message">{{ $message }}</span> @enderror
</div>
以及保存按钮代码:
<button
wire:click="store"
wire:loading.attr="disabled"
wire:target="store"
type="submit"
class="btn btn-sm btn-light">Save
</button>
storeCustomerNew.php 方法:
public function store()
{
$this->validate([
'name' => 'required|max:80',
'street' => 'required|max:100',
'city' => 'required|max:40',
'dueAmount' => 'numeric|min:0'
]);
Customer::create([
'name' => $this->name,
'street' => $this->street,
'city' => $this->city,
'due_amount' => $this->dueAmount,
]);
session()->flash('message', 'Customer was saved');
$this->clear();
}
clear() 方法是这样的:
public function clear() {
$this - > name = '';
$this - > street = '';
$this - > city = '';
$this - > dueAmount = 0;
}
【问题讨论】:
-
您确定您没有发送两次表单吗?当已经通过按钮提交表单时使用
<form wire:submit.prevent="store">,请确保不要使用提交按钮。
标签: laravel-validation laravel-livewire