اذهب إلى المحتوى

السؤال

نشر

أنا أحاول تنفيذ نظام إشعارات في تطبيق Laravel، حيث يتيح للمستخدمين استقبال إشعارات حول الأحداث المختلفة في التطبيق، فقررت استخدام قاعدة البيانات لتخزين الإشعارات وتحديد نوع الإشعار (مثل إشعارات النظام، الرسائل الشخصية، إلخ).

قمت بتصميم جدول في قاعدة البيانات لتخزين الإشعارات بشكل مناسب، ولكنني أواجه تحديات في تنفيذ الكود اللازم لحفظ الإشعارات وإرسالها بشكل فعال، كما أنني أواجه صعوبة في تصميم وعرض صفحة الإشعارات بشكل منظم للمستخدم.

Recommended Posts

  • 0
نشر

عزيزي الطالب،
عليك القيام بالتالي :
1. إنشاء كلاس إشعار:
 

php artisan make:notification NewUserNotification

بعد ذلك تذهب الى الملف لتوم بتعديله كالتالي:

use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;

class NewUserNotification extends Notification
{
    use Queueable;

    public function via($notifiable)
    {
        return ['database'];
    }

    public function toDatabase($notifiable)
    {
        return [
            'message' => 'Hello User',
            
        ];
    }

    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line(' Hi')
                    ->action('Button', url('/'))
                    ->line('Thankx!');
    }
}

2. إرسال الإشعار: لإرسال إشعار، استخدم الدالة notify في كلاس المستخدم:
 

$user->notify(new NewUserNotification());

3. جلب وعرض الإشعارات:

 

$notifications = $user->notifications;

لعرضها، يمكنك استخدام حلقة foreach في Blade:
 

@foreach($notifications as $notification)
    <div>
        {{ $notification->data['message'] }}
       
    </div>
@endforeach

4. تمييز الإشعارات كمقروءة: لتمييز إشعار كمقروء:
 

$notification->markAsRead();

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...