sortField = 'name'; $this->sortDirection = 'asc'; } public function sortBy(string $field): void { if ($this->sortField === $field) { $this->sortDirection = $this->sortDirection === 'asc' ? 'desc' : 'asc'; } else { $this->sortDirection = 'asc'; } $this->sortField = $field; } // Die Hauptmethode, um Daten zu laden 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->sortField, $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), // ]; // } }; ?>
| Name @if($sortField === 'name'){{ $sortDirection === 'asc' ? '▲' : '▼' }}@endif | E-Mail @if($sortField === 'email'){{ $sortDirection === 'asc' ? '▲' : '▼' }}@endif | Status @if($sortField === 'status'){{ $sortDirection === 'asc' ? '▲' : '▼' }}@endif | Rolle @if($sortField === 'role'){{ $sortDirection === 'asc' ? '▲' : '▼' }}@endif | Gruppe | Rechte | Aktionen |
|---|---|---|---|---|---|---|
| {{ $user->name }} | {{ $user->email }} | {{ ucfirst($user->status) }} | {{ $user->role }} {{-- Oder $user->role->name, wenn es eine Relation ist --}} | {{ $user->group }} {{-- Oder $user->group->name --}} | {{-- Darstellung der Rechte. Wenn es eine Many-to-Many Relation ist: --}} {{-- @foreach($user->permissions as $permission) {{ $permission->name }} @endforeach --}} {{-- Oder wenn es ein JSON-Feld ist, musst du es parsen und anzeigen --}} Einfache Rechte-Anzeige (Todo) | Bearbeiten {{-- FluxUI Button-Klassen --}} {{-- FluxUI Button-Klassen --}} |
| Keine Benutzer gefunden. | ||||||