Як маскувати чутливі атрибути Eloquent під час їх отримання в Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 05 лютого, 2026
Laravel Attribute Mask автоматично маскує конфіденційні атрибути Eloquent‑моделей — електронну пошту, телефони або текст. Хочете дізнатися, як додати трейд, налаштувати шаблони маскування та при потребі отримувати оригінальні значення — читайте статтю.

Пакет Laravel Attribute Mask від Fazle Rabbi автоматично маскує конфіденційні атрибути Eloquent-моделей під час їх отримання. Це зручно, коли потрібно показати часткові дані — наприклад, email, phone або іншу чутливу інформацію — не розкриваючи повних значень.

Основні можливості

Визначення атрибутів для маскування

Щоб почати, додайте трейд HasMaskedAttributes до моделі й вкажіть, які атрибути слід маскувати, через метод maskables() або властивість $maskable:

use Irabbi360\LaravelAttributeMask\Concern\HasMaskedAttributes;
use Illuminate\Database\Eloquent\Model;
 
class User extends Model
{
    use HasMaskedAttributes;
 
      // Alternatively, use the property syntax:
      protected array $maskable = ['email', 'phone'];
 
    protected function maskables(): array
    {
        return ['email', 'phone'];
    }
}

Як працює маскування

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

$user = User::find(1);
 
$user->email; // t**t@example.com
$user->phone; // 123****90

Отримання оригінальних значень

Щоб отримати оригінальне незамасковане значення, використовуйте метод getOriginal():

$user->getOriginal('email'); // test@example.com

Параметри конфігурації

Опублікований файл конфігурації (config/attribute-mask.php) дозволяє керувати поведінкою маскування та налаштувати її під ваші потреби:

return [
    'enabled' => true,
    'mask_char' => '*',
 
    'email_masking' => [
        'show_domain' => true,
        'show_start' => 1,
        'show_end' => 1,
    ],
 
    'phone_masking' => [
        'show_start' => 3,
        'show_end' => 2,
        'patterns' => ['phone', 'phone_number', 'mobile', 'mobile_number'],
    ],
 
    'text_masking' => [
        'show_start' => 3,
        'show_end' => 3,
    ],
];

Масив patterns у phone_masking дозволяє пакету автоматично виявляти поля з телефонами за іменами атрибутів.

Початок роботи

Встановіть пакет через Composer:

composer require irabbi360/laravel-attribute-mask

Опублікуйте файл конфігурації:

php artisan vendor:publish --tag="attribute-mask-config"

Детальніше та код — у репозиторії Laravel Attribute Mask на GitHub.

Популярні

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

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

Logomark Logotype

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!