[英]how to prevent dublicate data with validation in laravel livewire
我想防止數據庫中的數據重復,所以需要使用驗證。如果之前使用過同一個教室,應該有一個錯誤消息“這個教室已經存在”。 如何在laravel中創建這樣的自定義驗證?
這是我當前的代碼:
<div class="sm:col-start-1 sm:col-end-3 col-span-3 ">
<x-select x-on:change="isShowing = $event.target.value" name="classroom_id" label="{!! __('Sınıf') !!}" wire:model="classroom_id"
id="classroom_id"
:options="$this->classes"/>
<x-jet-input-error for="classroom_id" class="mt-2" />
</div>
<div class="col-span-2 " x-show="isShowing">
<label class="tf-form-label" for="course_name">
{{ __('Ders') }}
</label>
<input wire:model.debounce.250ms="course_name" type="text" name="course_name" id="course_name" class="tf-input" />
<x-jet-input-error for="course_name" class="mt-2" />
</div>
public function saveCourse(){
$this->validate(['course_name' => 'required','classroom_id' => 'required']);
$course = new Course();
$course->name = $course_name;
$course->classroom_id = $classroom_id;
$course->save();
$this->render();
}
您可以使用規則唯一
...
$this->validate([
'classroom_id' => 'required|{TableName}',
]);
...
您可以使用“唯一”驗證方法來實現它,並在其中定義要檢查的表和列
$this->validate([
'course_name' => 'required',
'classroom_id' => 'required|unique:courses,classroom_id'
]);
在編輯方法上,這種方法發生了變化,如果沒有對其進行任何更改,則一旦您需要忽略此字段的驗證。 然后你可以這樣做
$this->validate([
'course_name' => ['required']
'classroom_id' => ['required',Rule::unique('courses','classroom_id')->ignore('id',$this->course->id)]
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.