Впровадження власних строкових ідентифікаторів у моделях Laravel

Перекладено ШІ 1 Laravel News 26 червня, 2026

У статті розглядається, як Laravel спрощує впровадження унікальних рядкових ідентифікаторів у ваших моделях за допомогою рефакторизованого трейту HasUniqueStringIds. Досліджуючи цей підхід, ви дізнаєтеся, як зберегти маршрутизацію та створити індивідуальні формати ідентифікаторів у вашому додатку. Чи готові ви вдосконалити свої моделі в Laravel? Читайте далі

Laravel спрощує впровадження настроюваних рядкових ідентифікаторів у ваших моделях за допомогою доопрацьованого HasUniqueStringIds трейту. Цей підхід зберігає можливості маршрутизації фреймворка, водночас дозволяючи використовувати кастомізовані формати ідентифікаторів.

Базове впровадження передбачає створення власного трейту:

trait HasSecureIdentifiers
{
    use HasUniqueStringIds;

    public function newUniqueId()
    {
        return (string) SecureId::generate();
    }

    protected function isValidUniqueId($value): bool
    {
        return SecureId::validate($value);
    }
}

Ця схема дозволяє гнучко впроваджувати рішення у різних моделях:

class InvoiceIdentifierService
{
    public static function createIdentifier(): string
    {
        $prefix = config('app.env') === 'production' ? 'INV' : 'TEST';
        $timestamp = now()->format('Ymd');
        $random = strtoupper(Str::random(6));

        return "{$prefix}-{$timestamp}-{$random}";
    }

    public static function validateFormat(string $id): bool
    {
        $pattern = '/^(INV|TEST)-\d{8}-[A-Z0-9]{6}$/';
        return preg_match($pattern, $id) === 1;
    }
}

trait HasInvoiceIdentifier
{
    use HasUniqueStringIds;

    public function newUniqueId(): string
    {
        return InvoiceIdentifierService::createIdentifier();
    }

    protected function isValidUniqueId($value): bool
    {
        return InvoiceIdentifierService::validateFormat($value);
    }
}

class Invoice extends Model
{
    use HasInvoiceIdentifier;

    protected $keyType = 'string';
    public $incrementing = false;
}

Трейти HasUniqueStringIds гармонійно поєднуються з маршрутизацією Laravel, що дозволяє зберігати читабельні та зручні URL без втрати функціональності

Популярні

Інше, що варто прочитати

38 Оновлено 26 червня, 2026

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

20 Оновлено 26 червня, 2026

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю

10 Оновлено 26 червня, 2026

Остаточний посібник з вебхуків у Laravel

Сучасні веб-додатки вимагають миттєвого обміну інформацією, і вебхуки стають незамінними помічниками у цьому процесі. Пориньте у світ вебхуків у Laravel і дізнайтеся, як легко реалізувати цю технологію у своїх проєктах, забезпечуючи безпеку та продуктивність