'required|string|max:255', 'email' => 'required|string|max:255', ]; public function mount() { $this->roles = Role::all(); } public function openCreateUserModal() { $this->resetFields(); $this->showCreateModal = true; } public function openEditUserModal($id) { $user = User::findOrFail($id); $this->userId = $user->id; $this->name = $user->name; $this->email =$user->email; $this->selectedRoles = $user->roles()->pluck('id')->toArray(); $this->showCreateModal = true; } public function save() { $this->validate(); if ($this->userId) { $role = User::findOrFail($this->userId); $role->update([ 'name' => $this->name, 'email' => $this->email, ]); $role->syncRolses($this->selectedRoles); session()->flash('message', '使用者已更新'); } else { $role = User::create([ 'name' => $this->name, 'email' => $this->email, ]); $role->syncRolses($this->selectedRoles); session()->flash('message', '使用者已新增'); } $this->resetFields(); $this->showCreateModal = false; } public function deleteUser($id) { User::findOrFail($id)->delete(); session()->flash('message', '使用者已刪除'); } public function resetFields() { $this->name = ''; $this->email = ''; $this->selectedRoles = []; $this->userId = null; } public function render() { return view('livewire.admin.user-form'); } }