Form doğrulama
Form alanları Laravel doğrulama hatalarını $errors üzerinden kendileri gösterir: alan adına ait bir hata varsa çerçeve kırmızıya döner ve mesaj alanın altında çıkar. Ek kod gerekmez.
Hatalı gönderim
Hata, alanın name değerine (yoksa wire:model değerine) göre aranır. Livewire bileşeninde validate() ya da klasik bir controller'da $request->validate() çağrıldığında alanlar hatalarını kendileri gösterir.
<form class="grid gap-4 md:grid-cols-2">
<acun:input wire:model="ad" label="Müşteri adı" required />
<acun:input-group wire:model="telefon" label="Telefon" prefix="+90" value="532 11" />
<acun:select wire:model="grup" label="Müşteri grubu" :options="['1' => 'Bireysel']" placeholder="Seçiniz" />
<acun:input-group wire:model="limit" label="Kredi limiti" suffix="₺" value="0" />
<div class="md:col-span-2"><acun:button type="submit">Kaydet</acun:button></div>
</form>
| Prop | Değerler |
|---|---|
name / wire:model | Hatanın arandığı alan adı |
İpucu ve hata
Hata varken alanın hint metni gizlenir ve yerine hata mesajı gösterilir; hata giderilince ipucu geri gelir. Bu yüzden biçim açıklamalarını ipucuna yazmak güvenlidir.
<div class="grid gap-4 md:grid-cols-2">
<acun:input name="sifre_ipucu" type="password" label="Şifre" hint="En az 8 karakter." />
<acun:input name="sifre_hata" type="password" label="Şifre" hint="En az 8 karakter." value="1234" />
</div>
| Prop | Değerler |
|---|---|
hint | Hata yokken gösterilir |
Hatayı kendisi göstermeyen alanlar
Hatayı otomatik gösteren alanlar acun:input (ve onu kullanan acun:date-picker), acun:select, acun:combobox, acun:textarea ve acun:input-group'tur. Checkbox, radio, switch, etiket girişi ve seçim kartlarında mesajı @error ile kendiniz ekleyin.
<div class="flex flex-col gap-1.5">
<acun:checkbox name="kosullar" label="Kullanım koşullarını kabul ediyorum" />
@error('kosullar')
<p class="text-sm text-red-600">{{ $message }}</p>
@enderror
</div>
| Prop | Değerler |
|---|---|
@error | checkbox · radio · switch · tag-input · option-card · input-otp · range |
Livewire ile
Kuralları rules() içinde toplayın ve kaydederken validate() çağırın. Alan her değiştiğinde doğrulamak için updated() içinde validateOnly() kullanın; bunu wire:model.live.blur ile birleştirirseniz hata, kullanıcı alandan çıkınca görünür (Livewire 4'te tek başına .blur istek göndermez, sunucu değeri görmez).
protected function rules(): array
{
return [
'ad' => ['required', 'string', 'max:120'],
'telefon' => ['required', 'digits:10'],
'grup' => ['required', 'exists:musteri_gruplari,id'],
];
}
public function updated(string $alan): void
{
$this->validateOnly($alan);
}
public function kaydet(): void
{
$veri = $this->validate();
// …
}