Files
ntspi-app/app/Filament/Resources/UserResource/Pages/CreateUser.php
T
F4ilji c01016a154 Migrate backend to Porto architecture and fix minor bugs
- Fully transitioned the backend to the Porto architectural pattern
- Improved code organization and maintainability
- Fixed minor bugs and inconsistencies
2025-05-12 08:47:43 +05:00

40 lines
1.1 KiB
PHP

<?php
namespace App\Filament\Resources\UserResource\Pages;
use App\Filament\Resources\UserResource;
use App\Containers\User\Models\User;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
use Illuminate\Support\Str;
class CreateUser extends CreateRecord
{
protected static string $resource = UserResource::class;
protected function mutateFormDataBeforeCreate(array $data): array
{
$data['slug'] = $this->generateUniqueSlug($data['name']);
return $data;
}
private function generateUniqueSlug(string $name): string
{
// Преобразуем имя в slug (например, заменяем пробелы на дефисы и приводим к нижнему регистру)
$slug = Str::slug($name);
// Проверяем, существует ли slug в базе данных
$count = 1;
$baseSlug = $slug;
while (User::where('slug', $slug)->exists()) {
// Если slug существует, добавляем суффикс
$slug = $baseSlug . '-' . $count;
$count++;
}
return $slug;
}
}