بعد تثبيت مشروع لارافيل، والذهاب للمجلدات الخاصة بالمشروع ، يمكن لنا تثبيت filament من خلال إستخدام الأمر
composer require filament/filament:"^3.2" -W
ومن ثم تنفيذ الأمر
php artisan filament:install --panels
ومن ثم عمل publish للـ configuration
php artisan vendor:publish --tag=filament-config
كذلك يمكن لنا عمل publish للـ translation
php artisan vendor:publish --tag=filament-panels-translations php artisan vendor:publish --tag=filament-actions-translations php artisan vendor:publish --tag=filament-forms-translations php artisan vendor:publish --tag=filament-infolists-translations php artisan vendor:publish --tag=filament-notifications-translations php artisan vendor:publish --tag=filament-tables-translations php artisan vendor:publish --tag=filament-translations
الأن بعد الإنتهاء من تثبيت الحزمة، يمكن لنا التوجه إلى النطاق ( الدومين ) ومن ثم /admin
projectname.test/admin
فتظهر لنا هذه النافذه
الأن لتسجيل الدخول، نحتاج معلومات الدخول، بالوضع الإفتراضي أي مستخدم موجود في قاعده البيانات يمكن من خلاله تسجيل الدخول إلى اللوحة.
وبعد نجاح تسجيل الدخول تظهر لنا الواجهه الأساسية للوحة التحكم
لكن هنا السؤال، لو كان لدي في جدول users مجموعة من المستخدمين لكن ليس admin بالتالي يستطيعون الدخول إلى لوحة التحكم، ولمنع ذلك والسماح فقط للـ admin هنا نذهب إلى User Model و نعمل implements filamentUser وكذلك إضافة الدالة canAccessPanel
<?php namespace App\Models; use Filament\Models\Contracts\FilamentUser; use Filament\Panel; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements FilamentUser { // ... public function canAccessPanel(Panel $panel): bool { return str_ends_with($this->email, '@yourdomain.com') && $this->hasVerifiedEmail(); } }
كما نلاحظ أنه فقط المستخدمين الذين لديهم بريد الكتروني خاص بدومين معين يسمح لهم بعملية الوصول إلى لوحة التحكم، وممكن تعديلها أيضا إلى أي شيئ نريده مثلا اي بريد إلكتروني يكون @admin.com
public function canAccessPanel(Panel $panel): bool { return str_ends_with($this->email, '@admin.com') && $this->hasVerifiedEmail(); }