Pemberitahuan mesej
- Create Pemberitahuan Pemberitahuan Penggunaan Trait yang boleh diperhatikan dengan menggunakan pemberitahuan fasad yang ditetapkan
- on-Demand Notifications Pemberitahuan
- Formatted Mesej E -mel Ulang Pemberitahuan Pemformatan Pilihan Format Ror Message
- Customized Receients
- customized Template Template
- Pemberitahuan e-mel markdown
- Jana mesej
- Komponen tersuai
- CSS tersuai
- Pemberitahuan pangkalan data
- Pengetahuan awal
- Format Pemberitahuan Pangkalan Data
- Pengetahuan awal
- Konfigurasi baris gilir siaran
- Pemberitahuan mendengar
- Saluran pemberitahuan tersuai
- Lampiran Kendur
- Acara pemberitahuan
- Saluran tersuai
- Pemberitahuan beratur
- Pemberitahuan atas permintaan Templat tersuai
- Prasyarat
- Formatkan sistem siaran
- Nombor telefon "Dari" tersuai
- Pemberitahuan Slack chments
- Penghalaan Pemberitahuan Slack
- Pemberitahuan Disetempat
- Acara Pemberitahuan
Saluran Tersuai- Pengenalan sokongan kepada penghantaran melalui e-mel juga sokongan
- pelbagai saluran, termasuk e-mel, SMS ( melalui Nexmo ), dan
- Slack. Pemberitahuan juga boleh disimpan dalam pangkalan data untuk paparan seterusnya pada halaman web.
Biasanya, pemberitahuan ialah mesej ringkas dan bermaklumat yang digunakan untuk memaklumkan pengguna tentang perkara yang berlaku dalam apl. Contohnya, jika anda menulis aplikasi transaksi dalam talian, anda harus menghantar pemberitahuan "pembayaran bil" kepada pengguna melalui kelas saluran e-mel dan SMS.
Buat pemberitahuan
Pemberitahuan dalam Laravel ialah kelas (biasanya disimpan dalam folder
apl/Pemberitahuan). Jangan risau jika anda tidak dapat melihatnya, jalankan sahaja perintah make:notification
untuk menciptanya:app/Notifications
文件夹下)。看不到的话不要担心,运行下make:notification
命令就能创建了:php artisan make:notification InvoicePaid
这条命令会在
app/Notifications
目录下生成一个新的通知类。这个类包含via
方法以及一个或多个消息构建的方法 (比如toMail
或者toDatabase
) ,它们会针对指定的渠道把通知转换为对应的消息。发送通知
使用 Notifiable Trait
通知可以通过两种方法发送:
Notifiable
trait 的notify
方法或Notification
facade。首先让我们来探讨下使用 trait:<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable{ use Notifiable; }
默认的
AppUser
模型中使用了这个 trait,它包含着一个可以用来发送通知的方法:notify
。notify
方法需要一个通知实例做参数:use App\Notifications\InvoicePaid; $user->notify(new InvoicePaid($invoice));
{tip} 记住,你可以在任意模型中使用
IlluminateNotificationsNotifiable
trait,而不仅仅是在User
模型中。使用 Notification Facade
另外,你可以通过
Notification
facade 来发送通知。它主要用在当你给多个可接收通知的实体发送的时候,比如给用户集合发送通知。使用 Facade 发送通知的话,要把可以接收通知和通知的实例传递给send
方法:Notification::send($users, new InvoicePaid($invoice));
发送指定频道
每个通知类都会有个
via
方法,它决定了通知会在哪个频道上发送。开箱即用的频道有mail
,database
,broadcast
,nexmo
和slack
。{tip} 如果你想使用其他的频道,比如 Telegram 或者 Pusher,你可以去看下社区驱动的 Laravel 通知频道网站。
via
方法接收一个$notifiable
实例。这个实例将是通知实际发送到的类的实例。你可以用$notifiable
/** * 获取通知发送频道。 * * @param mixed $notifiable * @return array */ public function via($notifiable){ return $notifiable->prefers_sms ? ['nexmo'] : ['mail', 'database']; }
Arahan ini akan menjana pemberitahuan baharu dalamapp/Notifications kod> jenis direktori. Kelas ini mengandungi kaedah
atau fasadmelalui
dan satu atau lebih kaedah pembinaan mesej (sepertitoMail
atautoDatabase
), yang akan memberitahu saluran yang ditentukan Tukar ke mesej yang sepadan.Menghantar pemberitahuan
🎜Menggunakan Notifiable Trait🎜🎜 boleh dihantar dengan dua cara: Kaedah
notify
bagi sifat kod>NotifiableNotification
. Mula-mula mari kita teroka menggunakan ciri: 🎜<?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Notification; use Illuminate\Contracts\Queue\ShouldQueue; class InvoicePaid extends Notification implements ShouldQueue{ use Queueable; // ... }
🎜ModelAppUser
lalai menggunakan ciri ini, yang mengandungi kaedah yang boleh digunakan untuk menghantar pemberitahuan:beritahu. Kaedah notify
memerlukan contoh pemberitahuan sebagai parameter: 🎜$user->notify(new InvoicePaid($invoice));
🎜🎜{tip} Ingat, anda boleh menggunakan sifatIlluminateNotificationsNotifiable
dalam mana-mana model, bukan hanya dalamPengguna
dalam model. 🎜🎜🎜🎜🎜Menggunakan Fasad Pemberitahuan🎜🎜Selain itu, anda boleh menghantar pemberitahuan melalui fasadPemberitahuan. Ia digunakan terutamanya apabila anda menghantar pemberitahuan kepada berbilang entiti yang boleh menerima pemberitahuan, seperti menghantar pemberitahuan kepada koleksi pengguna. Jika anda menggunakan Facade untuk menghantar pemberitahuan, anda mesti menghantar contoh yang boleh menerima pemberitahuan dan pemberitahuan kepada kaedah hantar
: 🎜$when = now()->addMinutes(10); $user->notify((new InvoicePaid($invoice))->delay($when);
🎜🎜🎜🎜Hantar saluran yang ditentukan🎜🎜 Setiap kelas pemberitahuan akan mempunyai kaedahmelalui, yang menentukan saluran yang pemberitahuan akan dihantar. Saluran luar kotak ialah mel
,database
,broadcast
,nexmo
danslack< /kod> >. 🎜🎜🎜{tip} Jika anda ingin menggunakan saluran lain, seperti Telegram atau Pusher, anda boleh menyemak tapak web saluran pemberitahuan Laravel yang dipacu komuniti. 🎜🎜Kaedah
. Jika kelas pemberitahuan dijana melalui perintahmelalui
menerima contoh$notifiable
. Contoh ini akan menjadi contoh kelas yang sebenarnya dihantar pemberitahuan. Anda boleh menggunakan$notifiable
untuk memutuskan saluran mana yang hendak digunakan untuk menghantar pemberitahuan: 🎜Notification::route('mail', 'taylor@example.com') ->route('nexmo', '5555555555') ->notify(new InvoicePaid($invoice));
🎜🎜🎜🎜🎜Barisan Pemberitahuan🎜🎜🎜{Nota:} Anda perlu mengkonfigurasi baris gilir dan memulakan tugas giliran sebelum menggunakan baris gilir pemberitahuan. 🎜Menghantar pemberitahuan boleh memakan masa, terutamanya kerana saluran memerlukan panggilan API tambahan untuk menghantar pemberitahuan. Untuk mempercepatkan masa respons aplikasi, pemberitahuan boleh ditolak ke baris gilir dan dihantar secara tidak segerak Untuk melaksanakan pemberitahuan tolak ke baris gilir, kelas pemberitahuan yang sepadan boleh melaksanakan antara muka
ShouldQueue
dan menggunakan <. sifat kod>Boleh gilirmake:notification
, maka antara muka dan sifat telah diimport secara lalai dan anda boleh menambahkannya dengan cepat ke kelas pemberitahuan:ShouldQueue
接口并使用Queueable
trait 。 如果通知类是通过make:notification
命令生成的,那么该接口和 trait 已经默认导入,你可以快速将它们添加到通知类:/** * 获取通知对应的邮件。 * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable){ $url = url('/invoice/'.$this->invoice->id); return (new MailMessage) ->greeting('Hello!') ->line('One of your invoices has been paid!') ->action('View Invoice', $url) ->line('Thank you for using our application!'); }
ShouldQueue
接口被添加到通知类以后,你可以像之前一样正常发送通知,Laravel 会自动检测到ShouldQueue
接口然后将通知推送到队列:/** * 获取通知邮件。 * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable){ return (new MailMessage)->view( 'emails.name', ['invoice' => $this->invoice] ); }
如果你想要延迟通知的发送,可以在通知实例后加上
delay
方法:use App\Mail\InvoicePaid as Mailable; /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return Mailable */ public function toMail($notifiable){ return (new Mailable($this->invoice))->to($this->user->email); }
按需通知
有时候你可能需要发送通知给某个用户,但是该用户不存在于应用的用户系统中,要实现这一目的,我们使用
Notification::route
方法在发送通知之前指定特别的通知路由:/** * 获取通知邮件。 * * @param mixed $notifiable * @return \Illuminate\Notifications\Message */ public function toMail($notifiable){ return (new MailMessage) ->error() ->subject('Notification Subject') ->line('...'); }
邮件通知
格式化邮件消息
如果通知支持以邮件方式发送,你需要在通知类上定义一个
toMail
方法。该方法会接收一个$notifiable
实体并返回IlluminateNotificationsMessagesMailMessage
实例。邮件消息可以包含多行文本以及对动作的调用,让我们来看一个toMail
方法的示例:<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable{ use Notifiable; /** * 邮件通道通知的路由。 * * @param \Illuminate\Notifications\Notification $notification * @return string */ public function routeNotificationForMail($notification) { return $this->email_address; } }
{注:} 注意到我们在
toMail
方法中使用了$this->invoice->id
,你可以传递任何通知生成消息所需要的数据到通知的构造器。在这个例子中,我们注册了一条问候、一行文本、对动作的调用以及另一行文本。
MailMessage
对象提供的这些方法让格式化短小的事务邮件变得简单快捷。mail
通道会将消息组件转化为美观的、响应式的、带有纯文本副本的 HTML 邮件模板。下面是一个通过mail
/** * 获取通知的邮件表示。 * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable){ return (new MailMessage) ->subject('Notification Subject') ->line('...'); }
ShouldQueue< antara muka /code> Selepas ditambahkan ke kelas pemberitahuan, anda boleh menghantar pemberitahuan seperti sebelum ini secara automatik Laravel akan mengesan antara muka
: 🎜🎜🎜🎜🎜🎜ShouldQueue
dan menolak pemberitahuan ke baris gilir:php artisan vendor:publish --tag=laravel-notifications
Jika anda ingin menangguhkan. penghantaran pemberitahuan, anda boleh Tambah kaedah
kelewatan
selepas contoh pemberitahuan:php artisan make:notification InvoicePaid --markdown=mail.invoice.paid
Pemberitahuan atas permintaan
🎜Kadangkala anda Mungkin perlu menghantar pemberitahuan kepada pengguna, tetapi pengguna tidak wujud dalam sistem pengguna aplikasi Untuk mencapai ini, kami menggunakan kaedahNotification::route
untuk menentukan laluan pemberitahuan khas sebelum menghantar pemberitahuan :🎜/** * 获取通知的邮件表示。 * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable){ $url = url('/invoice/'.$this->invoice->id); return (new MailMessage) ->subject('Invoice Paid') ->markdown('mail.invoice.paid', ['url' => $url]); }
🎜🎜Pemberitahuan mel
🎜🎜formats Tukar mesej e-mel
🎜Jika pemberitahuan menyokong penghantaran melalui e-mel, anda perlu menentukan kaedahtoMail
pada kelas pemberitahuan. Kaedah ini menerima entiti$notifiable
dan mengembalikan contohIlluminateNotificationsMessagesMailMessage
. Mesej e-mel boleh mengandungi berbilang baris teks serta seruan tindakan Mari kita lihat contoh kaedahtoMail
: 🎜@component('mail::message') # Invoice PaidYour invoice has been paid! @component('mail::button', ['url' => $url]) View Invoice @endcomponent Thanks,<br> {{ config('app.name') }} @endcomponent
🎜{Nota:} Perhatikan bahawa kami menggunakan
. toMail
$this->invoice->id
digunakan dalam kod> kaedah Anda boleh menghantar sebarang data yang diperlukan untuk pemberitahuan menjana mesej kepada pembina pemberitahuan. 🎜🎜🎜Dalam contoh ini, kami mendaftarkan ucapan, baris teks, seruan tindakan dan baris teks lain. Kaedah yang disediakan oleh objekMailMessage
menjadikan pemformatan e-mel transaksi pendek cepat dan mudah. Saluranmel
menukar komponen mesej menjadi templat e-mel HTML responsif yang cantik dengan salinan teks biasa. Berikut ialah contoh e-mel yang dijana melalui saluranmel {Nota:} Semasa menghantar pemberitahuan e-mel, pastikan nilai
name
ditetapkan dalam fail konfigurasiconfig/app.php
, nilai ini akan digunakan dalam Pengepala dan treler mesej pemberitahuan e-mel.config/app.php
中设置了name
的值,该值将会用在邮件通知消息的头部和尾部。其他通知格式化选项
除了在通知类中定义多行文本之外,你还可以使用
view
方法来指定一个自定义的、用于渲染通知邮件的模板:@component('mail::button', ['url' => $url, 'color' => 'green']) View Invoice @endcomponent
此外,你可以从
toMail
方法中返回一个 可邮寄对象 :@component('mail::panel') This is the panel content. @endcomponent
错误消息
一些通知会告知用户错误信息,例如失败的订单支付。你可以在构建消息的时候调用
error
方法来指示该邮件消息表示错误信息。在邮件消息中使用error
方法时,动作按钮将会变成红色:@component('mail::table') | Laravel | Table | Example | | ------------- |:-------------:| --------:| | Col 2 is | Centered | | | Col 3 is | Right-Aligned | | @endcomponent
自定义接收人
通过
mail
通道发送通知时,通知系统会自动在被通知实体上查找email
属性,你可以通过在该实体上定义一个routeNotificationForMail
来自定义使用哪个邮箱地址发送通知:php artisan vendor:publish --tag=laravel-mail
自定义主题
默认情况下,邮件的主题就是格式为 「标题风格」 的通知类名,因此,如果通知类被命名为
InvoicePaid
,邮件的主题就是Invoice Paid
,如果你想要为消息指定明确的主题,可以在构建消息的时候调用subject
方法:php artisan notifications:table php artisan migrate
自定义模板
你可以通过发布通知扩展包的资源来修改邮件通知所使用的 HTML 和纯文本模板。运行完下面这个命令之后,邮件通知模板将会存放到
resources/views/vendor/notifications
目录:/** * 获取通知的数组表示。 * * @param mixed $notifiable * @return array */ public function toArray($notifiable){ return [ 'invoice_id' => $this->invoice->id, 'amount' => $this->invoice->amount, ]; }
Markdown 邮件通知
Markdown 邮件通知允许你利用邮件通知的预置模板,从而让你可以自由编写更长、更具个性化的消息。因为这些消息以 Markdown 格式编写,Laravel 还可以为它们渲染出高颜值、响应式的 HTML 模板,同时自动生成纯文本的副本。
生成消息
要生成带有相应 Markdown 模板的通知,可以在使用 Artisan 命令
make:notification
时带上--markdown
选项:$user = App\User::find(1); foreach ($user->notifications as $notification) { echo $notification->type; }
和其他邮件通知一样,使用 Markdown 模板的通知类也要定义一个
toMail
方法。不过,你可以使用markdown
方法取代构造通知的line
和action
Pilihan pemformatan pemberitahuan lain
Selain mentakrifkan teks berbilang baris dalam kelas pemberitahuan, anda juga boleh menggunakan kaedahview
untuk menentukan adat, Templat untuk menghantar e-mel pemberitahuan:$user = App\User::find(1); foreach ($user->unreadNotifications as $notification) { echo $notification->type; }
Selain itu, anda boleh mengembalikan objek yang boleh dihantar daripada kaedahtoMail
:$user = App\User::find(1); foreach ($user->unreadNotifications as $notification) { $notification->markAsRead(); }
🎜🎜Mesej Ralat h4>🎜Sesetengah pemberitahuan akan memaklumkan pengguna tentang mesej ralat, seperti pembayaran pesanan yang gagal. Anda boleh memanggil kaedah
error
semasa membina mesej untuk menunjukkan bahawa mesej e-mel mewakili maklumat ralat. Apabila menggunakan kaedahralat
dalam mesej e-mel, butang tindakan akan bertukar merah: 🎜$user->unreadNotifications->markAsRead();
🎜🎜🎜Menyesuaikan Penerima h3 >🎜Apabila menghantar pemberitahuan melalui saluran
mel
, sistem pemberitahuan secara automatik akan mencari atributemel
pada entiti diberitahu Anda boleh menentukanrouteNotificationForMail pada entiti
Untuk menyesuaikan alamat e-mel yang digunakan untuk menghantar pemberitahuan: 🎜$user = App\User::find(1); $user->unreadNotifications()->update(['read_at' => now()]);
🎜🎜🎜Menyesuaikan subjek
🎜Secara lalai, subjek e-mel ialah format nama kelas pemberitahuan "gaya tajuk" Oleh itu, jika kelas pemberitahuan dinamakanInvoicePaid
, subjek e-mel akan menjadiInvoice Paid
anda ingin menentukan Subjek eksplisit, anda boleh memanggil kaedahsubjek semasa membina mesej: 🎜 $user->notifications()->delete();
🎜🎜🎜Menyesuaikan templat h3>🎜Anda boleh lulus Terbitkan sumber pakej sambungan pemberitahuan untuk mengubah suai HTML dan templat teks biasa yang digunakan oleh pemberitahuan e-mel. Selepas menjalankan arahan berikut, templat pemberitahuan e-mel akan disimpan dalam direktori
resources/views/vendor/notifications
: 🎜use Illuminate\Notifications\Messages\BroadcastMessage;/** * 获取通知的可广播表示。 * * @param mixed $notifiable * @return BroadcastMessage */ public function toBroadcast($notifiable){ return new BroadcastMessage([ 'invoice_id' => $this->invoice->id, 'amount' => $this->invoice->amount, ]); }
🎜🎜🎜Pemberitahuan E-mel Markdown
🎜Pemberitahuan E-mel Markdown membolehkan anda memanfaatkan templat pra-bina untuk pemberitahuan e-mel, memberikan anda kebebasan untuk menulis mesej yang lebih panjang dan diperibadikan. Oleh kerana mesej ini ditulis dalam format Markdown, Laravel juga boleh menjadikannya templat HTML responsif yang cantik sambil menjana salinan teks biasa secara automatik. 🎜🎜🎜🎜Menjana mesej
🎜Untuk menjana pemberitahuan dengan templat Markdown yang sepadan, anda boleh menggunakan perintah Artisanmake:notification
dengan pilihan--markdown
: 🎜return (new BroadcastMessage($data)) ->onConnection('sqs') ->onQueue('broadcasts');
🎜Seperti pemberitahuan e-mel lain, kelas pemberitahuan menggunakan templat Markdown juga mesti menentukan kaedahtoMail
. Walau bagaimanapun, anda boleh menggunakan kaedahmarkdown
dan bukannya kaedahline
danaction
pemberitahuan pembina untuk menentukan nama templat Markdown untuk digunakan: 🎜Echo.private('App.User.' + userId) .notification((notification) => { console.log(notification.type); });
🎜🎜🎜 🎜Menulis Mesej
Pemberitahuan e-mel markdown menggabungkan komponen Blade dan sintaks Markdown, membolehkan anda membina pemberitahuan dengan mudah tanpa melepaskan diri daripada komponen pra-bina Laravel:
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable{ use Notifiable; /** * 用户接收广播通知的通道。 * * @return string */ public function receivesBroadcastNotificationsOn() { return 'users.'.$this->id; } }
Komponen Butang
Pautan butang Komponen berpusat. Komponen ini menerima dua parameter,
url
dan pilihancolor
Warna yang disokong ialahbiru
,hijau
danmerah
. Anda boleh menambah sebarang bilangan komponen butang pada mesej anda:url
和可选的color
,支持的颜色有blue
,green
和red
。你可以添加任意数量的按钮组件到消息中:composer require laravel/nexmo-notification-channel
面板组件
面板组件将给定的文字区块渲染到一个面板中,并且有一个淡淡的背景色与周围的消息区分开。适用于需要引起注意的文字区块:
'nexmo' => [ 'key' => env('NEXMO_KEY'), 'secret' => env('NEXMO_SECRET'), 'sms_from' => '15556666666', ],
表格组件
表格组件允许你将一个 Markdown 表格转化为 HTML 表格。该组件接收 Markdown 表格作为其内容。表格列对齐支持使用默认的 Markdown 表格列对齐语法:
/** * Get the Nexmo / SMS representation of the notification. * * @param mixed $notifiable * @return NexmoMessage */ public function toNexmo($notifiable){ return (new NexmoMessage) ->content('Your SMS message content'); }
自定义组件
你可以导出所有 Markdown 通知组件到应用中进行自定义,要导出组件,使用 Artisan 命令
vendor:publish
来发布laravel-mail
资源标签:/** * Get the Nexmo / SMS representation of the notification. * * @param mixed $notifiable * @return NexmoMessage */ public function toNexmo($notifiable){ return (new NexmoMessage) ->content('Your unicode message') ->unicode(); }
该命令会发布 Markdown 邮件通知组件到
resources/views/vendor/mail
目录。mail
目录包含html
和markdown
目录,每个子目录中又包含各自的所有有效组件。你可以按照自己的喜好自由编辑这些组件。自定义 CSS
导出组件之后,
resources/views/vendor/mail/html/themes
目录将会包含一个默认的default.css
文件,你可以在这个文件中自定义 CSS,这样 Markdown 通知的 HTML 样式就会自动调整。{注:} 如果你想要为 Markdown 组件构建全新的主题,只需在
html/themes
目录中编写一个新的 CSS 文件并修改mail
配置文件的theme
选项即可。数据库通知
预备知识
database
通知通道会在数据表中存储通知信息,该表包含诸如通知类型以及用于描述通知的自定义 JSON 数据之类的信息。你可以在用户界面中查询这个数据表来展示通知,不过,在此之前,需要创建数据表来保存信息,你可以使用
notifications:table
/** * Get the Nexmo / SMS representation of the notification. * * @param mixed $notifiable * @return NexmoMessage */ public function toNexmo($notifiable){ return (new NexmoMessage) ->content('Your SMS message content') ->from('15554443333'); }
Komponen Panel<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable{ use Notifiable; /** * Route notifications for the Nexmo channel. * * @param \Illuminate\Notifications\Notification $notification * @return string */ public function routeNotificationForNexmo($notification) { return $this->phone; } }
Komponen Jadual🎜🎜Komponen Jadual membolehkan anda menukar jadual Markdown kepada jadual HTML. Komponen ini menerima jadual Markdown sebagai kandungannya. Penjajaran lajur jadual menyokong menggunakan sintaks penjajaran lajur jadual Markdown lalai: 🎜composer require laravel/slack-notification-channel
🎜🎜🎜🎜Komponen tersuai🎜🎜Anda boleh mengeksport semua komponen pemberitahuan Markdown ke aplikasi untuk penyesuaian, Untuk mengeksport komponen, gunakan perintah Artisanvendor:publish
untuk menerbitkanlaravel-mail
Tag sumber: 🎜/** * Get the Slack representation of the notification. * * @param mixed $notifiable * @return SlackMessage */ public function toSlack($notifiable){ return (new SlackMessage) ->content('One of your invoices has been paid!'); }
🎜Arahan ini akan menerbitkan komponen pemberitahuan e-mel Markdown keresources/ lihat direktori /vendor/mail
. Direktorimel
mengandungi direktorihtml
danmarkdown
, setiap satunya mengandungi semua komponennya yang sah. Anda bebas untuk mengedit komponen ini mengikut keinginan anda. 🎜🎜CSS Tersuai🎜🎜Selepas mengeksport komponen, direktoriresources/views/vendor/mail/html/themes
akan mengandungi faildefault.css
lalai, anda boleh Sesuaikan CSS dalam fail ini supaya gaya HTML pemberitahuan Markdown akan diselaraskan secara automatik. 🎜🎜{Nota:} Jika anda ingin membina tema baharu untuk komponen Markdown, cuma tulis fail CSS baharu dalam direktori
🎜🎜🎜html/themes
dan ubah suaimel code> Pilihan
theme
bagi fail konfigurasi sudah memadai. 🎜Pemberitahuan pangkalan data
🎜🎜🎜🎜Prasyarat🎜🎜pangkalan data< / kod> Saluran pemberitahuan menyimpan maklumat pemberitahuan dalam jadual data yang mengandungi maklumat seperti jenis pemberitahuan dan data JSON tersuai yang menerangkan pemberitahuan. 🎜🎜Anda boleh menanyakan jadual data ini dalam antara muka pengguna untuk memaparkan pemberitahuan Namun, sebelum berbuat demikian, anda perlu membuat jadual data untuk menyimpan maklumat Anda boleh menggunakan perintah notifications:table
untuk jana fail migrasi dan kemudian gunakan Ini menjana jadual data yang sepadan: 🎜/** * Get the Slack representation of the notification. * * @param mixed $notifiable * @return SlackMessage */ public function toSlack($notifiable){ return (new SlackMessage) ->from('Ghost', ':ghost:') ->to('#other') ->content('This will be sent to #other'); }
🎜🎜🎜🎜Formatkan pemberitahuan pangkalan data
Jika pemberitahuan menyokong penyimpanan ke jadual pangkalan data, kelas pemberitahuan perlu mentakrifkan kaedah
toDatabase
atautoArray
. Kaedah ini menerima entiti$notifiable
sebagai parameter dan mengembalikan tatasusunan PHP asli. Data yang dikembalikan akan dikodkan sebagai JSON dan disimpan dalam lajurdata
pada jadualnotifications
. Mari lihat contoh kaedahtoArray
:toDatabase
或toArray
方法。此方法接受$notifiable
实体作参数并返回原生 PHP 数组。返回的数据将被编码为 JSON 并存储到notifications
表的data
列。来看一个toArray
方法示例:/** * Get the Slack representation of the notification. * * @param mixed $notifiable * @return SlackMessage */ public function toSlack($notifiable){ return (new SlackMessage) ->from('Laravel') ->image('https://laravel.com/favicon.png') ->content('This will display the Laravel logo next to the message'); }
toDatabase
Vs.toArray
toArray
方法还可以使用broadcast
通道来判断哪些数据被广播到 JavaScript 客户端。如果针对database
和broadcast
通道分别有两个不同的数组表示,你需要定义toDatabase
方法代替toArray
方法。访问通知
一旦通知存入数据库,就需要适当的方法自通知实体访问它们。 包含在 Lareval 的默认
AppUser
模型带有IlluminateNotificationsNotifiable
trait,它的notifications
Eloquent 关联方法能返回实体通知。要获取通知,可以像其它 Eloquent 关联方法一样访问此方法。默认情况下,通知按照created_at
时间戳排序:/** * Get the Slack representation of the notification. * * @param mixed $notifiable * @return SlackMessage */ public function toSlack($notifiable){ $url = url('/exceptions/'.$this->exception->id); return (new SlackMessage) ->error() ->content('Whoops! Something went wrong.') ->attachment(function ($attachment) use ($url) { $attachment->title('Exception: File Not Found', $url) ->content('File [background.jpg] was not found.'); }); }
若要只获取 「未读」通知,可以使用
unreadNotifications
关联方法。同样这些通知按照created_at
时间戳排序:/** * Get the Slack representation of the notification. * * @param mixed $notifiable * @return SlackMessage */ public function toSlack($notifiable){ $url = url('/invoices/'.$this->invoice->id); return (new SlackMessage) ->success() ->content('One of your invoices has been paid!') ->attachment(function ($attachment) use ($url) { $attachment->title('Invoice 1322', $url) ->fields([ 'Title' => 'Server Expenses', 'Amount' => ',234', 'Via' => 'American Express', 'Was Overdue' => ':-1:', ]); }); }
{tip} 若要从 JavaScript 客户端访问通知,需要为应用定义一个通知控制器,它返回可通知实体的通知,比如当前用户。可以从 JavaScript 客户端向该控制器 URI 发送 HTTP 请求。
标记通知已读
通常,在用户阅览一条通知之后,你会想将其标识为「已读」。
IlluminateNotificationsNotifiable
trait 提供了markAsRead
方法,它更新数据库中通知记录的read_at
列:/** * Get the Slack representation of the notification. * * @param mixed $notifiable * @return SlackMessage */ public function toSlack($notifiable){ $url = url('/exceptions/'.$this->exception->id); return (new SlackMessage) ->error() ->content('Whoops! Something went wrong.') ->attachment(function ($attachment) use ($url) { $attachment->title('Exception: File Not Found', $url) ->content('File [background.jpg] was *not found*.') ->markdown(['text']); }); }
可以在通知控制集合上直接使用
markAsRead
方法代替循环调用通知:<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable{ use Notifiable; /** * Route notifications for the Slack channel. * * @param \Illuminate\Notifications\Notification $notification * @return string */ public function routeNotificationForSlack($notification) { return 'https://hooks.slack.com/services/...'; } }
还可以使用指更新将所有的通知标为已读,而不从数据库中读取它们:
$user->notify((new InvoicePaid($invoice))->locale('es'));
可以使用
delete
Notification::locale('es')->send($users, new InvoicePaid($invoice));
toDatabase
LwntoArray
toArray< /code> Kaedah juga boleh menggunakan saluran
menyiarkan pemberitahuan menggunakan perkhidmatan penyiaran acara Laravel, yang membolehkan pelanggan JavaScript menangkap pemberitahuan dalam masa nyata. Jika pemberitahuan menyokong penyiaran, anda perlu menentukan kaedahbroadcast
untuk menentukan data yang disiarkan kepada klien JavaScript. Jika anda mempunyai dua perwakilan tatasusunan yang berbeza untuk saluranpangkalan data
dansiaran
, anda perlu menentukan kaedahtoDatabase
dan bukannyatoArray kod> kaedah.
dan bukannya memanggil pemberitahuan dalam gelung: 🎜Mengakses pemberitahuan
Setelah pemberitahuan disimpan dalam pangkalan data, kaedah yang sesuai diperlukan untuk mengaksesnya daripada entiti pemberitahuan. Model
AppUser
lalai yang disertakan dengan Lareval mempunyai ciriIlluminateNotificationsNotifiable
dannotifications
kaedah berkaitan Fasih boleh mengembalikan pemberitahuan entiti. Untuk mendapatkan pemberitahuan, anda boleh mengakses kaedah ini seperti kaedah berkaitan Eloquent yang lain. Secara lalai, pemberitahuan diisih mengikutcreated_at
cap waktu:use Illuminate\Contracts\Translation\HasLocalePreference; class User extends Model implements HasLocalePreference{ /** * Get the user's preferred locale. * * @return string */ public function preferredLocale() { return $this->locale; } }
Untuk mendapatkan hanya pemberitahuan "belum dibaca", anda boleh menggunakan kaedah perkaitanunreadNotifications
. Sekali lagi pemberitahuan ini diisih mengikutcreated_at
cap waktu:$user->notify(new InvoicePaid($invoice));
{tip} Untuk mengakses pemberitahuan daripada klien JavaScript, anda perlu menentukan pengawal pemberitahuan untuk aplikasi anda yang mengembalikan pemberitahuan untuk entiti yang boleh diberitahu , seperti pengguna semasa. Permintaan HTTP boleh dihantar ke URI pengawal ini daripada klien JavaScript.
Tandai pemberitahuan sebagai dibaca
Selalunya, selepas pengguna membaca pemberitahuan, anda ingin menandainya sebagai "baca". CiriIlluminateNotificationsNotifiable
menyediakan kaedahmarkAsRead
, yang mengemas kini lajurread_at
rekod pemberitahuan dalam pangkalan data: 🎜/** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'Illuminate\Notifications\Events\NotificationSent' => [ 'App\Listeners\LogNotification', ], ];
🎜boleh digunakan terus pada kaedah pengumpulan kawalan pemberitahuan< kod>markAsRead/** * Handle the event. * * @param NotificationSent $event * @return void */ public function handle(NotificationSent $event){ // $event->channel // $event->notifiable // $event->notification // $event->response }
🎜Anda juga boleh menggunakan kemas kini jari untuk menandakan semua pemberitahuan sebagai dibaca tanpa membacanya daripada pangkalan data: 🎜<?php namespace App\Channels; use Illuminate\Notifications\Notification;class VoiceChannel{ /** * 发送指定的通知. * * @param mixed $notifiable * @param \Illuminate\Notifications\Notification $notification * @return void */ public function send($notifiable, Notification $notification) { $message = $notification->toVoice($notifiable); // Send notification to the $notifiable instance... } }
🎜Anda boleh menggunakan < kaedah kod>padam code> memadamkan keseluruhan pemberitahuan daripada jadual: 🎜<?php namespace App\Notifications; use Illuminate\Bus\Queueable; use App\Channels\VoiceChannel; use App\Channels\Messages\VoiceMessage; use Illuminate\Notifications\Notification; use Illuminate\Contracts\Queue\ShouldQueue; class InvoicePaid extends Notification{ use Queueable; /** * 获取通知通道. * * @param mixed $notifiable * @return array|string */ public function via($notifiable) { return [VoiceChannel::class]; } /** * 获取语音表示的通知. * * @param mixed $notifiable * @return VoiceMessage */ public function toVoice($notifiable) { // ... } }
🎜🎜🎜🎜🎜Pemberitahuan siaran🎜🎜🎜🎜🎜🎜Pengetahuan awal🎜🎜Sebelum penyiaran pemberitahuan dan biasakan, anda perlu mengkonfigurasi acara dengan Laravel perkhidmatan. Penyiaran acara menyediakan cara untuk klien JavaScript bertindak balas kepada peristiwa Laravel yang dicetuskan oleh pelayan. 🎜🎜🎜🎜🎜Pemberitahuan siaran berformat
Saluran
siaran toBroadcast
pada kelas pemberitahuan. Kaedah ini menerima entiti$notifiable
sebagai parameter dan mengembalikan contohBroadcastMessage
. Data yang dikembalikan akan dikodkan sebagai JSON dan disiarkan kepada klien JavaScript. Mari lihat contoh kaedahtoBroadcast
broadcast
通道使用 Laravel 的 event broadcasting 服务广播通知,它允许 JavaScript 客户端实时捕获通知。如果通知支持广播,你就需要在通知类上定义toBroadcast
方法。此方法接受$notifiable
实体作为参数,并返回BroadcastMessage
实例。返回的数据将被编码为 JSON 并广播给 JavaScript 客户端。我们来看一个toBroadcast
方法示例rrreee广播队列配置
所有的广播通知都被放入广播队列。想要配置用于广播操作的队列连接或者队列名称,需要使用
rrreeeBroadcastMessage
的onConnection
和onQueue
方法:{tip} 除了指定的数据,广播通知还包含
type
域,它包括通知类的类名。监听通知
通知将会以格式化为
rrreee{notifiable}.{id}
的形式在私有频道上广播,因此,如果你要发送通知到 ID 为1
的AppUser
实例,那么该通知将会在私有频道App.User.1
上进行广播,如果使用了 Laravel Echo,可以使用辅助函数notification
轻松在某个频道上监听通知:自定义通知通道
如果你想要自定义被通知实体在某个通道上接收广播通知,可以在被通知实体上定义一个
rrreeereceivesBroadcastNotificationsOn
方法:短信(SMS)通知
预备知识
Laravel 基于 Nexmo 发送短信通知,在使用 Nexmo 发送通知前,需要安装对应 Composer 依赖包
rrreeelaravel/nexmo-notification-channel
:下一步,你需要在配置文件
rrreeeconfig/services.php
中进行相应配置。你可以参考以下示例配置:sms_from
配置项就是你用于发送短信消息的手机号码,你需要在 Nexmo 控制面板中为应用生成一个手机号码。格式化短信通知
如果通知支持以短信方式发送,那么你需要在通知类上定义一个
rrreeetoNexmo
方法。该方法接收一个$notifiable
实体并返回IlluminateNotificationsMessagesNexmoMessage
实例:Unicode 内容
如果你的短信消息包含 Unicode 字符,需要在构造
NexmoMessage
实例时调用unicode
rrreeeKonfigurasi baris gilir siaran
Semua pemberitahuan siaran dimasukkan ke dalam baris gilir siaran. Untuk mengkonfigurasi sambungan baris gilir atau nama baris gilir untuk operasi penyiaran, anda perlu menggunakan kaedahonConnection
danonQueue
BroadcastMessage
:rrreee
{tip} Selain data yang ditentukan, pemberitahuan siaran juga mengandungi medan
🎜🎜🎜Mendengar untuk pemberitahuan🎜🎜Pemberitahuan akan diformatkan sebagaitype
, yang mengandungi nama kelas kelas pemberitahuan.{notifiable}.{id}
dalam saluran peribadi, jadi jika anda ingin menghantar pemberitahuan kepada contohAppUser
dengan ID1
, pemberitahuan akan disiarkan pada saluran peribadiApp.User.1
untuk menyiarkan. Jika anda menggunakan Laravel Echo, anda boleh menggunakan fungsi pembantupemberitahuan untuk memantau pemberitahuan dengan mudah pada saluran: 🎜rrreee Saluran pemberitahuan tersuai
🎜Jika anda mahu sesuaikan entiti diberitahu untuk menerima pemberitahuan siaran pada saluran tertentu, anda boleh menentukan kaedahreceivesBroadcastNotificationsOn
pada entiti diberitahu: 🎜rrreee🎜🎜🎜< h2>SMS pemberitahuan🎜🎜🎜🎜Prasyarat🎜🎜Laravel adalah berdasarkan Nexmo🎜 Untuk menghantar pemberitahuan SMS, sebelum menggunakan Nexmo untuk menghantar pemberitahuan, anda perlu memasang pakej kebergantungan Komposer yang sepadanlaravel/nexmo-notification-channel
: 🎜rrreee🎜Seterusnya, anda perlu mengkonfigurasi fail konfigurasiconfig/services. Konfigurasikan sewajarnya dalam php
. Anda boleh merujuk kepada konfigurasi contoh berikut: 🎜rrreee🎜sms_from Item konfigurasi ialah nombor telefon mudah alih yang anda gunakan untuk menghantar mesej SMS Anda perlu menjana nombor telefon mudah alih untuk aplikasi dalam kawalan Nexmo panel. 🎜🎜🎜🎜🎜Pemberitahuan SMS berformat🎜🎜Jika pemberitahuan menyokong penghantaran melalui SMS, maka anda perlu mentakrifkan kaedah toNexmo
pada kelas pemberitahuan. Kaedah ini menerima entiti$notifiable
dan mengembalikan contohIlluminateNotificationsMessagesNexmoMessage
: 🎜rrreeeKandungan Unicode
🎜Jika mesej SMS anda mengandungi aksara Unicode, anda perlu binanya Panggil kaedahunicode
apabila contohNexmoMessage
: 🎜rrreee🎜🎜🎜🎜Sesuaikan nombor "hantar"
Jika anda ingin menghantar pemberitahuan melalui nombor yang berbeza daripada nombor mudah alih yang dinyatakan dalam fail konfigurasi
rrreeeconfig/services.php
, anda boleh menggunakanNexmoMessage
Kaedahdaripada pada contoh: config/services.php
中指定的手机号不同的其他号码发送通知,可以使用NexmoMessage
实例上的from
方法:短信通知路由
使用
rrreeenexmo
通道发送通知的时候,通知系统会自动在被通知实体上查找phone_number
属性。如果你想要自定义通知被发送到的手机号码,可以在该实体上定义一个routeNotificationForNexmo
方法:Slack 通知
预备知识
在通过 Slack 发送通知前,必须通过 Composer 安装 Slack 通知通道:
rrreee此外,你还要为 Slack 组配置一个 "Incoming Webhook" 集成。该集成会在你进行 Slack 通知路由 的时候提供一个 URL。
格式化 Slack 通知
如果通知支持通过 Slack 消息发送,则需要在通知类上定义一个
rrreeetoSlack
方法,该方法接收一个$notifiable
实体并返回IlluminateNotificationsMessagesSlackMessage
实例,该实例包含文本内容以及格式化额外文本或数组字段的 “附件”。让我们来看一个基本的toSlack
使用示例:在这个例子中,我们只发送一行简单的文本到 Slack,最终创建的消息如下:
Customizing The Sender & Recipient
你可以使用
from
和to
方法自定义发送者和接收者,from
方法接收一个用户名和 emoji 标识,而to
rrreeePenghalaan pemberitahuan SMSApabila menggunakan saluran
rrreeenexmo
untuk hantar pemberitahuan , sistem pemberitahuan secara automatik akan mencari atributphone_number
pada entiti yang diberitahu. Jika anda ingin menyesuaikan nombor telefon mudah alih yang pemberitahuan dihantar, anda boleh menentukan kaedahrouteNotificationForNexmo
pada entiti ini:Pemberitahuan Slack
PrasyaratSelain itu, anda juga perlu mengkonfigurasi kumpulan Slack Penyepaduan "Incoming Webhook"🎜. Penyepaduan ini menyediakan URL apabila anda Penghalaan pemberitahuan kendur 🎜. 🎜🎜🎜🎜🎜Memformat pemberitahuan Slack🎜🎜Jika pemberitahuan menyokong penghantaran melalui mesej Slack, anda perlu menentukan kaedahSebelum menghantar pemberitahuan melalui Slack, anda mesti memasang saluran pemberitahuan Slack melalui Komposer:
rrreeetoSlack
pada kelas pemberitahuan, yang Kaedah ini menerima entiti$notifiable
dan mengembalikan tikaIlluminateNotificationsMessagesSlackMessage
yang mengandungi kandungan teks dan "lampiran" teks tambahan atau medan tatasusunan yang diformat. Mari lihat contoh penggunaan asastoSlack
: 🎜rrreee🎜Dalam contoh ini, kami hanya menghantar baris teks ringkas kepada Slack, dan mesej terakhir yang dibuat adalah seperti berikut: 🎜🎜🎜🎜🎜Menyesuaikan Pengirim & Penerima
🎜Anda boleh menyesuaikan penghantar dan penerima menggunakan kaedahdaripada danke, Kaedah dari menerima nama pengguna dan pengecam emoji, manakala kaedah ke menerima saluran atau nama pengguna: 🎜rrreee🎜 Anda juga boleh menggunakan gambar sebagai logo untuk menggantikan emoji: 🎜rrreee 🎜🎜🎜🎜🎜 Lampiran Slack🎜🎜Anda juga boleh menambah "lampiran" pada mesej Slack. Berbanding dengan mesej teks ringkas, lampiran boleh memberikan pilihan format yang lebih kaya. Dalam contoh ini, kami akan menghantar pemberitahuan ralat pengecualian yang berlaku dalam aplikasi, termasuk pautan untuk melihat lebih banyak butiran pengecualian: 🎜rrreee🎜Kod di atas akan menjana mesej Slack berikut: 🎜🎜🎜🎜🎜🎜 Lampiran juga membolehkan anda menentukan data tatasusunan untuk dipersembahkan kepada pengguna. Untuk meningkatkan kebolehbacaan, tatasusunan yang diberikan akan dipaparkan dalam bentuk jadual:
rrreeeKod di atas akan menjana mesej Slack berikut:
Kandungan lampiran markdown
Jika sesetengah medan lampiran mengandungi Markdown, anda boleh menggunakan kaedah
rrreeemarkdown
untuk membina Slack untuk menghuraikan dan memaparkan medan lampiran yang ditulis dalam format Markdown ini kaedah termasukdalih ,teks ataumedan. Untuk mengetahui lebih lanjut tentang pemformatan dalam Slack, lihat dokumentasi API Slack: markdown
方法来构建 Slack 用以解析并显示以 Markdown 格式编写的附件字段,该方法支持的值包括pretext
、text
或fields
。想要了解更多关于 Slack 格式化的信息,查看 Slack API 文档:Slack 通知路由
要路由 Slack 通知到适当的位置,需要在被通知的实体上定义一个
rrreeerouteNotificationForSlack
方法,这将会返回通知被发送到的 Webhook URL。Webhook URL 可通过在 Slack 组上添加一个 "Incoming Webhook" 服务来生成:本地化通知
Laravel 允许您以当前语言环境之外的其他语言发送通知,并且会在通知队列时记住该语言环境。
要实现这一点,
rrreeeIlluminateNotificationsNotification
类提供了一个locale
方法来设置所需的语言。在格式化通知时,应用程序将更改为此语言设置,然后在格式化完成后还原为以前的语言设置:多重通知的本地化也可通过
rrreeeNotification
Facade 实现:用户首选语言区域设置
有些情况下,应用程序保存了每个用户的首选语言区域设置。通过在模型上实现
rrreeeHasLocalePreference
契约,可以指定 Laravel 在发送通知时使用用户保存的首选语言设置:实现接口后,Laravel 将在向模型发送通知和邮件时自动使用首选区域设置。因此,使用此接口时不需要调用
rrreeelocale
方法:通知事件
当通知被发送后,通知系统会触发
rrreeeIlluminateNotificationsEventsNotificationSent
事件,该事件实例包含被通知的实体(如用户)和通知实例本身。你可以在EventServiceProvider
中为该事件注册监听器:{提示} 在
EventServiceProvider
中注册监听器之后,使用 Artisan 命令event:generate
可以快速生成监听器类。在事件监听器中,可以访问事件的
rrreeenotifiable
、notification
和channel
属性了解通知接收者和通知本身的更多信息:自定义通道
Laravel 为我们提供了多种通知通道,但是尝试编写自定义通道驱动以通过其他通道发送通知,也很简单。首先定义一个包含
🎜send
方法的类,该方法接收两个参数:$notifiable
和$notification
rrreeePenghalaan pemberitahuan Slack
🎜Untuk menghalakan pemberitahuan Slack ke lokasi yang sesuai, anda perlu mentakrifkanrouteNotificationForSlack pada entiti yang diberitahu > kaedah, ini akan mengembalikan URL Webhook yang pemberitahuan dihantar. URL Webhook boleh dijana dengan menambahkan perkhidmatan "Incoming Webhook" pada kumpulan Slack: 🎜rrreee🎜🎜
Fasad: 🎜rrreeeMenyetempatkan pemberitahuan
🎜Laravel membenarkan anda Hantar pemberitahuan dalam bahasa selain daripada tempat semasa, dan tempat itu akan diingati apabila memberitahu baris gilir. 🎜🎜Untuk mencapai matlamat ini, kelasIlluminateNotificationsNotification
menyediakan kaedahlocale
untuk menetapkan bahasa yang dikehendaki. Apabila memformat pemberitahuan, aplikasi akan bertukar kepada tetapan bahasa ini, kemudian kembali kepada tetapan bahasa sebelumnya setelah pemformatan selesai: 🎜rrreee🎜Penyetempatan berbilang pemberitahuan juga boleh dilakukan melaluiPemberitahuan Tempat Pilihan Pengguna
🎜Dalam sesetengah kes, aplikasi menyimpan tempat pilihan setiap pengguna. Dengan melaksanakan kontrakHasLocalePreference
pada model anda, anda boleh menentukan bahawa Laravel menggunakan tetapan bahasa pilihan pengguna yang disimpan semasa menghantar pemberitahuan: 🎜rrreee🎜Selepas melaksanakan antara muka, Laravel akan menggunakan bahasa pilihan secara automatik apabila menghantar pemberitahuan dan e-mel ke tempat model. Oleh itu, tidak perlu memanggil kaedahlocale
apabila menggunakan antara muka ini: 🎜rrreee🎜🎜Acara pemberitahuan
🎜Apabila pemberitahuan adalah Selepas penghantaran, sistem pemberitahuan akan mencetuskan peristiwaIlluminateNotificationsEventsNotificationSent
Kejadian kejadian mengandungi entiti diberitahu (seperti pengguna) dan tika pemberitahuan itu sendiri. Anda boleh mendaftarkan pendengar untuk acara ini dalamEventServiceProvider
: 🎜rrreee🎜{Tip} Selepas mendaftarkan pendengar dalam
🎜Dalam pendengar acara, anda boleh mengakses sifatEventServiceProvider
, gunakan perintah Artisanevent : generate
boleh menjana kelas pendengar dengan cepat. 🎜notified
,notification
danchannel
untuk mengetahui tentang pemberitahuan penerima dan pemberitahuan itu sendiri Maklumat lanjut tentang: 🎜rrreee🎜🎜Saluran Tersuai
🎜Laravel memberikan kami berbilang saluran pemberitahuan, tetapi cuba tulis saluran tersuai Pemacu untuk menghantar pemberitahuan melalui saluran lain juga mudah. Mula-mula tentukan kelas yang mengandungi kaedahhantar
, yang menerima dua parameter:$notifiable
dan$notification
:🎜rrreeeSetelah kelas saluran pemberitahuan ditakrifkan, anda boleh menggunakan kaedah
rrreeevia
untuk mengembalikan nama kelas dalam aplikasi:Artikel ini pertama kali diterbitkan di tapak web LearnKu.com.
- Notification Queue
- Menulis mesej
- Pemberitahuan mesej