Cara Membina Sistem Pemberitahuan dengan Laravel
Jalankan Pemberitahuan Artisan PHP: Jadual dan berhijrah untuk menubuhkan pangkalan data. 2. Buat kelas pemberitahuan menggunakan PHP Artisan Make: Pemberitahuan Newmessagereceived dan tentukan saluran dalam kaedah VIA, data dalam todatabase, dan penyiaran masa nyata di TOBROADCAST. 3. Hantar pemberitahuan melalui $ user-> NOTIFY (NewMessageReCeived ($ mesej)) atau gunakan fasad pemberitahuan untuk beberapa pengguna. 4. Mengambil pemberitahuan menggunakan auth ()-> user ()-> pemberitahuan atau tidak dibaca, dan tandakannya sebagai dibaca dengan markasread (). 5. Untuk kemas kini masa nyata, konfigurasikan penyiaran dengan Pusher atau Laravel Echo dan dengar di saluran peribadi untuk pemberitahuan. 6. Sesuaikan tingkah laku dengan saluran yang kembali, mengubah suai skema pangkalan data, atau mengendalikan pemadaman lembut. Sistem pemberitahuan Laravel membolehkan penghantaran lancar merentasi pelbagai saluran dengan API yang bersih dan konsisten.
Membina sistem pemberitahuan di Laravel adalah terima kasih kepada ciri pemberitahuan terbina dalamnya. Laravel menyediakan cara yang bersih dan fleksibel untuk menghantar pemberitahuan merentasi pelbagai saluran seperti pangkalan data, e -mel, SMS, dan banyak lagi. Berikut adalah cara menyediakan sistem pemberitahuan lengkap menggunakan alat asli Laravel.
1. Sediakan pangkalan data untuk pemberitahuan
Pertama, Laravel menggunakan jadual notifications
untuk menyimpan pemberitahuan pangkalan data. Menjana penghijrahan:
Pemberitahuan Artisan PHP: Jadual
Kemudian jalankan penghijrahan:
PHP Artisan berhijrah
Ini mewujudkan jadual notifications
dengan medan seperti id
, type
, notifiable_id
, notifiable_type
, data
, dan read_at
.
2. Buat kelas pemberitahuan
Gunakan Artisan untuk menghasilkan pemberitahuan:
PHP Artisan Make: Pemberitahuan Newmessagereceived
Ini mewujudkan kelas dalam app/Notifications/NewMessageReceived.php
. Editnya untuk menentukan bagaimana pemberitahuan harus disampaikan:
<? Php Namespace App \ Notifications; Gunakan Illuminate \ bas \ queuable; Gunakan Illuminate \ kontrak \ giliran \ shouldqueue; Gunakan Illuminate \ Notifications \ Messages \ DatabaseMessage; Gunakan pencahayaan \ pemberitahuan \ pemberitahuan; kelas newmessagereceived memanjangkan alat pemberitahuan { Gunakan irama; mesej awam $; Fungsi Awam __Construct ($ mesej) { $ this-> mesej = $ mesej; } // Tentukan saluran mana yang hendak digunakan: pangkalan data, mel, siaran, dll. Fungsi awam melalui ($ diperhatikan) { kembali ['pangkalan data', 'siaran']; // Juga tambahkan 'mel' jika diperlukan } // Pemberitahuan kedai dalam pangkalan data Fungsi Awam Todatabase ($ diperhatikan) { kembali [ 'Mesej' => $ this-> mesej, 'sander_id' => auth ()-> id (), 'sander_name' => auth ()-> user ()-> name, 'url' => url ('/mesej/'. $ this-> message-> id) ]; } // Pilihan: Siaran melalui Laravel Echo (untuk kemas kini UI masa nyata) Fungsi Awam TOBROADCAST ($ diperhatikan) { Kembalikan siaran baru ([[ 'Mesej' => $ this-> mesej, 'sander_name' => auth ()-> user ()-> name, 'create_at' => sekarang ()-> todateTimeString () ]); } }
NOTA : Melaksanakan
ShouldQueue
untuk memastikan pemberitahuan dihantar secara asynchronously untuk prestasi yang lebih baik.
3. Hantar pemberitahuan
Anda boleh menghantar pemberitahuan kepada pengguna menggunakan kaedah notify()
.
Gunakan aplikasi \ pemberitahuan \ newmessagereceived; Gunakan App \ Models \ User; $ user = user :: cari (1); // penerima $ message = // model atau data mesej anda $ user-> NOTIFY (newMessageReCeived ($ mesej)));
Sebagai alternatif, gunakan fasad Notification
untuk dihantar kepada beberapa pengguna:
Gunakan Illuminate \ Support \ Facades \ Pemberitahuan; Pemberitahuan :: hantar (pengguna :: semua (), newMessageReceived ($ mesej)));
4. Pemberitahuan paparan di bahagian depan
Ambil pemberitahuan yang belum dibaca dari pengawal:
Fungsi Awam GetNotifications () { kembali auth ()-> pengguna ()-> pemberitahuan; } Fungsi Awam GetUnreadNotifications () { kembali auth ()-> user ()-> unreadnotifications; }
Tandakan pemberitahuan seperti yang dibaca:
$ pemberitahuan = auth ()-> user ()-> pemberitahuan ()-> cari ($ id); $ pemberitahuan-> markasread ();
Atau tandakan semua seperti yang dibaca:
auth ()-> user ()-> markasread ();
Dalam templat bilah:
<ul> @Foreach (auth ()-> user ()-> Unreadnotifications sebagai pemberitahuan $) <li> {{$ pemberitahuan-> data ['Mesej']}} dari {{$ notification-> data ['Sender_name']}} </li> @endforeach </ul>
5. Pemberitahuan masa nyata dengan penyiaran (pilihan)
Untuk menunjukkan pemberitahuan masa nyata:
- Sediakan penyiaran (misalnya, penolak, pelayan echo laravel).
- Kemas kini
toBroadcast()
dalam pemberitahuan. - Dengarkan di JavaScript:
Import echo dari 'Laravel-echo'; window.echo.private (`app.models.user. $ {userid}`) .Notification ((pemberitahuan) => { console.log (pemberitahuan.message); // Kemas kini UI: Tambahkan ke Dropdown Pemberitahuan });
Pastikan model pengguna diselesaikan dengan betul dalam penyiaran (periksa config/broadcasting.php
dan pengesahan).
6. Sesuaikan tingkah laku pemberitahuan
- Saluran bersyarat : Kembalikan saluran yang berbeza berdasarkan logik:
Fungsi awam melalui ($ diperhatikan) { $ saluran = ['pangkalan data']; jika ($ notifiable-> email_notifications) { $ saluran [] = 'mel'; } kembali $ saluran; }
- Skema pangkalan data tersuai : Ubah suai penghijrahan untuk menambah medan tambahan seperti
type
,icon
, dll. - Pemadaman lembut : Pemberitahuan lembut-dipadamkan secara lalai. Gunakan
forceDelete()
untuk mengeluarkan secara kekal.
Ringkasan
Sistem pemberitahuan Laravel adalah kuat dan mudah digunakan. Langkah utama:
- Jalankan
notifications:table
- Buat kelas pemberitahuan dengan
via
,toDatabase
, dll. - Hantar Pemberitahuan Menggunakan
$user->notify()
- Ambil dan paparan dalam pandangan
- Tambahkan penyiaran untuk kemas kini masa nyata
Dengan persediaan ini, anda boleh mengendalikan makluman, mesej, peringatan, dan banyak lagi - semua melalui API yang konsisten. Pada dasarnya hanya mengkonfigurasi, menghantar, dan paparan.
Atas ialah kandungan terperinci Cara Membina Sistem Pemberitahuan dengan Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Buat Model dan Migrasi: Gunakan PhPartisanMake: ModelPost-M untuk menjana model dan fail penghijrahan, menentukan struktur meja dan jalankan phpartisanmigrate; 2. Operasi CRUD Asas: Gunakan pos :: semua (), cari (), buat (), simpan () dan padam () kaedah untuk menanyakan, membuat, mengemas kini dan memadam data; 3. Gunakan persatuan yang fasih: Tentukan hubungan dan hubungan hasmany dalam model, dan gunakan kaedah dengan () untuk memperlihatkan data yang berkaitan untuk mengelakkan masalah pertanyaan n 1; 4.

Polymorphicrelationshipsinlaravelallowamodelikecommentorimagetobelongtomultiplemodelssuchaspost, video, oruserusingasingleassociation.2.Thedatabaseschemarequires {Hubungan}

Buat direktori seperti sumber/lang/en dan sumber/lang/es dan tentukan mesej bahasa.php bahasa; 2. Tetapkan lokasi bahasa lalai dan bahasa alternatif fallback_locale dalam config/app.php; 3. Gunakan app :: setLocale () untuk menukar bahasa secara dinamik, dan menggabungkan middleware untuk menetapkannya secara automatik mengikut sesi atau meminta tajuk; 4. Tambah {locale} awalan untuk melaksanakan URL berbilang bahasa melalui paket penghalaan, dan menjana pautan setempat dalam templat; 5. Gunakan fungsi __ () atau arahan @lang untuk memanggil terjemahan dalam pengawal dan pandangan, menyokong bentuk jamak viTrans_Choice

Runphpartisannotifications: tableAndmigratetosetupthedatabase.2.CreateAnotificationClassingSingPhPartiSanMake: notificationNewMessagereCeivedandDefineChannelsIntheViamethod, DataAntodataBase, Andreal-TimeBroadCastingToBcast.3.SendNotifcast.3.3.SendNotifcast.3

Sistem Taskscheduling Laravel membolehkan anda menentukan dan menguruskan tugas-tugas masa melalui PHP, tanpa mengedit secara manual dengan Crontab Server, anda hanya perlu menambah tugas cron yang dilaksanakan sekali seminit ke pelayan: *CD/Path-to-Your-Project && phpartisanschedule: RUN >>/null2> App \ Console \ Kernel Class; 1. Menentukan tugas boleh menggunakan kaedah perintah, panggilan atau eksekutif, seperti $ jadual-

Buat fail bahasa: Buat subdirektori untuk setiap bahasa (seperti en, es) dalam direktori sumber/lang dan tambahkan fail.php mesej, atau gunakan fail JSON untuk menyimpan terjemahan; 2. Tetapkan Bahasa Permohonan: Baca Header Permintaan Menerima bahasa melalui middleware atau mengesan bahasa melalui awalan URL, tetapkan bahasa semasa menggunakan apl ()-> setLocale (), dan daftar middleware di kernel.php; 3. Gunakan fungsi terjemahan: gunakan __ (), trans () atau @lang dalam pandangan untuk mendapatkan kandungan terjemahan, dan disyorkan untuk menggunakan __ () yang menyokong sandaran; 4.

Ya ya, ya, ya, ya, yapaS, yoyacreateasoiNworkWitThlyFollowingTheSestEps: 1.setuplaraveliausingcomposer, configurethe.Envfile, enNipAceAuthenticationEvheButreh/jetStream/fortifify, andRunMigrationsforUsermanGENGENGENGA
