diff --git a/app/Filament/Resources/UserResource.php b/app/Filament/Resources/UserResource.php index 697e48e..6e64130 100644 --- a/app/Filament/Resources/UserResource.php +++ b/app/Filament/Resources/UserResource.php @@ -7,12 +7,14 @@ use App\Filament\Resources\UserResource\RelationManagers; use App\Models\User; use BezhanSalleh\FilamentShield\Contracts\HasShieldPermissions; use Filament\Forms; +use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; +use Illuminate\Support\Str; class UserResource extends Resource implements HasShieldPermissions { @@ -31,7 +33,22 @@ class UserResource extends Resource implements HasShieldPermissions ->schema([ Forms\Components\TextInput::make('name') ->required() - ->maxLength(255), + ->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(), 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 166b87c..b90e029 100644 --- a/app/Filament/Resources/UserResource/Pages/CreateUser.php +++ b/app/Filament/Resources/UserResource/Pages/CreateUser.php @@ -14,8 +14,6 @@ class CreateUser extends CreateRecord protected function mutateFormDataBeforeCreate(array $data): array { - $data['slug'] = $this->generateUniqueSlug($data['name']); - dd(1); return $data; } diff --git a/app/Filament/Resources/UserResource/Pages/EditUser.php b/app/Filament/Resources/UserResource/Pages/EditUser.php index fbca289..28a4af5 100644 --- a/app/Filament/Resources/UserResource/Pages/EditUser.php +++ b/app/Filament/Resources/UserResource/Pages/EditUser.php @@ -14,8 +14,6 @@ class EditUser extends EditRecord protected function mutateFormDataBeforeSave(array $data): array { - $data['slug'] = $this->generateUniqueSlug($data['name']); - return $data; } diff --git a/resources/js/Pages/Client/Divisions/Show.vue b/resources/js/Pages/Client/Divisions/Show.vue index 8b3c69b..cb0760f 100644 --- a/resources/js/Pages/Client/Divisions/Show.vue +++ b/resources/js/Pages/Client/Divisions/Show.vue @@ -74,7 +74,6 @@