Пакет 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