sortBy = 'name'; $this->sortDirection = 'asc'; } public function sort($column) { if ($this->sortBy === $column) { $this->sortDirection = $this->sortDirection === 'asc' ? 'desc' : 'asc'; } else { $this->sortBy = $column; $this->sortDirection = 'asc'; } } /*public function orders() { return \App\Models\Order::query() ->tap(fn ($query) => $this->sortBy ? $query->orderBy($this->sortBy, $this->sortDirection) : $query) ->paginate(5); }*/ // Die Hauptmethode, um Daten zu laden #[\Livewire\Attributes\Computed] public function users() { return User::query() ->when($this->search, fn($query, $search) => $query->where('name', 'like', '%' . $search . '%') ->orWhere('email', 'like', '%' . $search . '%') ) ->when($this->statusFilter, fn($query, $status) => $query->where('status', $status) ) ->when($this->roleFilter, fn($query, $role) => $query->where('role', $role) // oder 'role_id' wenn du IDs verwendest ) ->orderBy($this->sortBy, $this->sortDirection) ->paginate(10); // 10 Einträge pro Seite } // Optional: Lifecycle hook für das Zurücksetzen der Paginierung bei Suche/Filterung public function updatedSearch() { $this->resetPage(); } public function updatedStatusFilter() { $this->resetPage(); } public function updatedRoleFilter() { $this->resetPage(); } // Wird für die Paginierung mit Tailwind benötigt (Standard in Livewire 3) // Wenn FluxUI Bootstrap-basierte Paginierung braucht, musst du das anpassen // public function paginationView() // { // return 'vendor.livewire.tailwind'; // oder 'livewire::bootstrap' // } // Wenn du mit Relationen arbeitest (z.B. user->role->name) // public function with(): array // { // return [ // 'users' => User::with(['role', 'group']) // Eager loading // // ... deine Query-Logik von oben ... // ->paginate(10), // ]; // } }; ?> Customer Date Status Amount @foreach ($this->users as $user) {{ $user->name }} {{ $user->email }} RTest {{ $user->role }} New post Name Date Popularity Draft Published Archived Delete @endforeach