Add Permission

master
sundayenglish 4 weeks ago
parent 258ebeff69
commit c35a05b8f8
  1. 35
      app/Components/Permission/Manager.php

@ -1,13 +1,16 @@
<?php <?php
namespace App\Components\Permission; namespace App\Components\Permission;
use Livewire\Component; use Livewire\Component;
use Livewire\Attributes\On;
use Livewire\WithPagination; use Livewire\WithPagination;
use Spatie\Permission\Models\Permission; use Spatie\Permission\Models\Permission;
class Manager extends Component class Manager extends Component
{ {
use WithPagination; use WithPagination;
protected string $paginationTheme = 'bootstrap'; protected string $paginationTheme = 'bootstrap';
public string $mode = 'index'; // 'index' hoặc 'form' public string $mode = 'index'; // 'index' hoặc 'form'
@ -15,9 +18,15 @@ class Manager extends Component
public string $search = ''; // search query public string $search = ''; // search query
public string $name = ''; // dùng cho form public string $name = ''; // dùng cho form
protected $listeners = [ // Khi sự kiện 'permissionSaved' được dispatch, gọi showIndex()
'permissionSaved' => 'showIndex', #[On('permissionSaved')]
]; public function showIndex()
{
$this->mode = 'index';
$this->resetPage();
$this->name = '';
$this->editingId = null;
}
// Khi search thay đổi, reset pagination // Khi search thay đổi, reset pagination
public function updatingSearch() public function updatingSearch()
@ -35,15 +44,6 @@ class Manager extends Component
: ''; : '';
} }
// Quay về index, refresh list
public function showIndex()
{
$this->mode = 'index';
$this->resetPage();
$this->name = '';
$this->editingId = null;
}
// Xóa // Xóa
public function delete(int $id) public function delete(int $id)
{ {
@ -55,8 +55,10 @@ class Manager extends Component
// Lưu form // Lưu form
public function save() public function save()
{ {
$rules = ['name' => 'required|string|unique:permissions,name' $rules = [
.($this->editingId ? ",{$this->editingId}" : '')]; 'name' => 'required|string|unique:permissions,name'
. ($this->editingId ? ",{$this->editingId}" : '')
];
$this->validate($rules); $this->validate($rules);
@ -66,9 +68,12 @@ class Manager extends Component
); );
session()->flash('message', 'Permission saved.'); session()->flash('message', 'Permission saved.');
$this->emit('permissionSaved');
// Gọi sự kiện nội bộ Livewire 3
$this->dispatch('permissionSaved');
} }
// Render view
public function render() public function render()
{ {
$permissions = Permission::where('name', 'like', "%{$this->search}%") $permissions = Permission::where('name', 'like', "%{$this->search}%")

Loading…
Cancel
Save