Пакет для керування статусами моделей у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 28 січня, 2025
Вам цікаво, як автоматизувати керування статусами моделей у Laravel? У цій статті ми розглянемо пакет Laravel Model Status, який спрощує додавання статусних колонок та забезпечує ефективну роботу з активними користувачами

Пакет Laravel Model Status, розроблений Muhammed ElFeqy, автоматизує додавання конфігурованих стовпців статусу до моделей та міграцій. Цей пакет надає зручний HasActiveScope трейті, енум Status, медіа-шлюз для перевірки активності користувачів, а також спеціальну команду Artisan для спрощення робочого процесу.

use Thefeqy\ModelStatus\Traits\HasActiveScope;
 
class ExampleModel extends Model
{
    use HasActiveScope;
 
    protected $fillable = ['name'];
}
 
$model->activate(); // Активує статус моделі
$model->deactivate(); // Деактивує модель
 
// Лише активні моделі
$activeModels = ExampleModel::all();
 
// Включає неактивні моделі
$allModels = ExampleModel::withoutActive()->get();

Ця модель також містить медіа-шлюз, який обмежує доступ до маршруту лише для користувачів з активним статусом. У прикладі EnsureAuthenticatedUserIsActive виведе користувача з системи і надішле йому 403 Forbidden response, якщо його акаунт неактивний:

use Illuminate\Support\Facades\Route;
use Thefeqy\ModelStatus\Middleware\EnsureAuthenticatedUserIsActive;
 
Route::middleware(['auth', EnsureAuthenticatedUserIsActive::class])
    ->group(function () {
        Route::get('/dashboard', function () {
            return 'Ласкаво просимо до вашої панелі управління!';
        });
    });

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

Дізнатися більше про цей пакет, отримати повні інструкції з встановлення та переглянути джерельний код можна на GitHub. Ви можете встановити цей пакет у ваш проект за допомогою Composer, використовуючи таку команду:

composer require thefeqy/laravel-model-status