sorununuzu tam anlamadım, geceden kalmayım biraz. ama foreach döngüsü içinde livewire componenti çağırmanızı tavsiye etmem.
livewire componentini tek bir user datasına yönelik değil, tüm datalara yönelik oluşturun. ve livewire'da tüm user datasını sakladığınız değişkeni loop halinde işleyin.
ayrıca loop kullanırken (sanırım hatalarınız bundan kaynaklı olabilir) `:userId="$user->id' attribute eklediğinizi görüyorum. yanına mutlaka indexi key olarak ekleyin. yani şu şekilde olmalı
@foreach($users as $index => $user)
<tr wire:key="row-{{ $index }}" :userId="$user->id">
<td>{{ $user['name'] }}</td>
</tr>
@endforeach
eğer wire:key
kullanmazsanız çoğu durumda veriler veya componentler eşleşemez. misal; bir datatable'da 2 tane row arasından birisinin verisi değiştiğinde aynı veri ikisine birden yansır. bunu, her bir öğeyi wire:key
ile ayırt ettirerek önlersiniz.
şimdi pek yardımcı olamadım ama bi github reposuna minimum düzeyde örnek bir proje ekleyip link atarsanız, akşam düzeltip PR gönderirim size.
yaklaşık 3 aydır tall stack yapısıyla datatables eklentisi yazıyorum. livewire/datatables kelimelerini görünce konu dikkatimi çekti. ama biraz uyku saatine yakın olduğu için pek yardımcı olamıyorum🙂 kolay gelsin.
edit: tekrar inceledim de.. sizin yaşadığınız sorun çok yüksek ihtimalle yukarda bahsetmiş olduğum wire:key
eklememe durumunuzla ilgili.
edit 2: akşama bırakmayım dedim 😃 başlangıç için yardımcı olması amaçlı ufak bi demo hazırladım. playground üzerinde çalıştığım için hatalarım olabilir ama ana mantık anlaşılır olmuştur diye düşünüyorum. sort ve paginate de ekledim. User::all() kullanmak yerine bunu eğer query ile yaparsanız hem performans açısından çok iyi olur, hem sorgularınıza filtre, search, cache vb. şeyler de katabilirsiniz. paginator sayesinde zaten performans++. ek olarak, dediğim gibi wire:key mutlaka ekleyin. use Livewire\WithPagination
ve ardından {{ $posts->links() }}
kullanarak sayfalandırma kısımlarını da gösterebilirsiniz.
tablo eğer sürekli işlem yaptığınızda ortadan kayboluyorsa tüm view dosyasını <div> </div> arasına aldığınızdan da emin olun. MrNeo
https://laravelplayground.com/#/snippets/ef3072b3-c988-490c-a944-f7e3386e0e63