حزمة لإدارة حالة الـ model في Laravel
حزمة لإدارة حالة الـ Model في Laravel
تُسهّل حزمة Laravel Model Status، من تطوير محمد الفقي، إضافة أعمدة للحالة قابلة للتكوين إلى النماذج (Models) و ترقيات قاعدة البيانات (Migrations). توفر هذه الحزمة سمة `HasActiveScope` سهلة الاستخدام، و `Status` enum، وبرمجيات وسيطة لضمان نشاط المستخدمين، وأمر Artisan مخصص لتبسيط سير عملك.
use Thefeqy\ModelStatus\Traits\HasActiveScope;
class ExampleModel extends Model
{
use HasActiveScope;
protected $fillable = ['name'];
}
$model->activate(); // Give the model an active status
$model->deactivate(); // Deactivate the model
// Only active models
$activeModels = ExampleModel::all();
// Include inactive models
$allModels = ExampleModel::withoutActive()->get();
يشمل هذا النموذج أيضًا برمجيات وسيطة، تُلزم المسار الذي يمكن الوصول إليه فقط من قِبل المستخدمين ذوي الحالة النشطة. سيقوم `EnsureAuthenticatedUserIsActive` في هذا المثال بتسجيل خروج المستخدم وإرسال استجابة `403 Forbidden` إذا كان حسابه غير نشط:
use Illuminate\Support\Facades\Route;
use Thefeqy\ModelStatus\Middleware\EnsureAuthenticatedUserIsActive;
Route::middleware(['auth', EnsureAuthenticatedUserIsActive::class])
->group(function () {
Route::get('/dashboard', function () {
return 'Welcome to your dashboard!';
});
});
الميزات الرئيسية
- إضافة عمود حالة قابل للتكوين إلى النماذج (Models) وترقيات قاعدة البيانات (Migrations).
- التعامل التلقائي للحالات النشطة.
- لتأكد من كون المستخدم نفسه نشط (قام بتفعيل الحساب) `EnsureAuthenticatedUserIsActive`.
- تفعيل أو إلغاء تفعيل النماذج (Models) باستخدام طرق بسيطة.
- دعم التكوين الديناميكي لاسم العمود، والقيمة الافتراضية، والطول.
- يشمل أمر `make:model-status`.
يمكنك معرفة المزيد حول هذه الحزمة، والحصول على تعليمات التثبيت الكاملة، وعرض `المصدر` على GitHub. يمكنك تثبيت هذه الحزمة في مشروعك عبر Composer باستخدام الأمر التالي:
composer require thefeqy/laravel-model-status