Merhaba arkadaşlar,
Laravel ve Livewire kullanarak bir CMS paneli yazıyorum. Menü oluşturma işlemi için bir formum var, ancak hata durumunda is-invalid sınıfı uygulanmıyor. Yardımcı olabilir misiniz?
Livewire Controller
public function createPage()
{
# validation
$rules = [
'page_name' => 'required|string|max:70',
'page_lang' => 'required',
'page_status' => 'required',
];
$attributes = [
'page_name' => 'Sayfa adı',
'page_lang' => 'Sayfa dili',
'page_status' => 'Sayfa durumu',
];
if ($this->page_special_menu == 1) {
$rules["page_special_menu_name.0"] = 'required|string|max:70';
$rules["page_special_menu_url.0"] = 'required';
$rules["page_special_menu_name.*"] = 'required|string|max:70';
$rules["page_special_menu_url.*"] = 'required';
$attributes["page_special_menu_name.0"] = 'Menü adı';
$attributes["page_special_menu_url.0"] = 'Bağlantı adresi';
$attributes["page_special_menu_name.*"] = 'Menü adı';
$attributes["page_special_menu_url.*"] = 'Bağlantı adresi';
}
$validator = Validator::make($this->all(), $rules, [], $attributes);
if ($validator->fails()) {
$this->dispatchBrowserEvent('swal', [
'icon' => "error",
'html' => "Lütfen tüm alanları doldurun.",
'toast' => true,
'position' => "top-end",
'timer' => 3000,
'showConfirmButton' => false,
'showCancelButton' => false,
]);
}
$validator->validate();
# end validation
}
View (create.blade.php)
@foreach ($inputs as $key => $value)
<tr>
<th class="text-dark text-center">{{ $value }})</th>
<td>
<div class="mb-3">
<label class="form-label fw-bold text-dark">Menü adı</label>
<input type="text" class="form-control @error('page_special_menu_name.'.$value) is-invalid @enderror"
placeholder="Menü adı girin." wire:model="page_special_menu_name.{{ $value }}">
</div>
</td>
<td>
<div class="mb-3">
<label class="form-label fw-bold text-dark">Bağlantı
adresi</label>
<input type="text" class="form-control" placeholder="Menü bağlantısı girin."
wire:model="page_special_menu_url.{{ $value }}">
</div>
</td>
<td class="text-center">
<button class="btn btn-sm btn-danger" type="button" wire:click.prevent="remove({{ $key }})">
<i class="fas fa-trash-alt"></i>
</button>
</td>
</tr>
@endforeach