diff --git a/app/Filament/Resources/UserResource.php b/app/Filament/Resources/UserResource.php index 6e64130..87e9924 100644 --- a/app/Filament/Resources/UserResource.php +++ b/app/Filament/Resources/UserResource.php @@ -34,21 +34,7 @@ class UserResource extends Resource implements HasShieldPermissions Forms\Components\TextInput::make('name') ->required() ->maxLength(255) - ->live(onBlur: true) - ->afterStateUpdated(function (string $operation, string|null $state, Forms\Set $set) { - $slug = Str::slug($state); - $count = 1; - $baseSlug = $slug; - - while (User::where('slug', $slug)->exists()) { - // Если slug существует, добавляем суффикс - $slug = $baseSlug . '-' . $count; - $count++; - } - $set('slug', $slug); - } - ), - TextInput::make('slug')->label('Slug')->unique(ignoreRecord: true)->readOnly()->required(), + ->live(onBlur: true), Forms\Components\TextInput::make('email') ->email() ->required() diff --git a/app/Filament/Resources/UserResource/Pages/CreateUser.php b/app/Filament/Resources/UserResource/Pages/CreateUser.php index b90e029..343dd53 100644 --- a/app/Filament/Resources/UserResource/Pages/CreateUser.php +++ b/app/Filament/Resources/UserResource/Pages/CreateUser.php @@ -14,6 +14,7 @@ class CreateUser extends CreateRecord protected function mutateFormDataBeforeCreate(array $data): array { + $data['slug'] = $this->generateUniqueSlug($data['name']); return $data; } diff --git a/app/Filament/Resources/UserResource/Pages/EditUser.php b/app/Filament/Resources/UserResource/Pages/EditUser.php index 28a4af5..ca18f35 100644 --- a/app/Filament/Resources/UserResource/Pages/EditUser.php +++ b/app/Filament/Resources/UserResource/Pages/EditUser.php @@ -14,6 +14,8 @@ class EditUser extends EditRecord protected function mutateFormDataBeforeSave(array $data): array { + $data['slug'] = $this->generateUniqueSlug($data['name']); + return $data; } @@ -37,6 +39,7 @@ class EditUser extends EditRecord + protected function getHeaderActions(): array { return [ diff --git a/app/Models/User.php b/app/Models/User.php index 3edfa25..926ba9d 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -28,6 +28,7 @@ class User extends Authenticatable implements FilamentUser 'name', 'email', 'password', + 'slug' ]; /**