digitalcloud / multilingual-notification
v1.0
2018-12-30 13:10 UTC
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2022-02-01 13:14:53 UTC
README
安装
PHP >=5.6 和 Laravel ^5.3 是必需的。
要获取响应式Laravel通知的最新版本,只需使用Composer引入项目。
composer require digitalcloud/reactive-notification
发布迁移文件
php artisan vendor:publish --provider="Digitalcloud\ReactiveNotification\ReactiveNotificationServiceProvider"
迁移已发布的迁移文件
php artisan migrate
使用方法
- 将模型中使用的trait从
Illuminate\Notifications\Notifiable
更改为Digitalcloud\ReactiveNotification\Traits\Notifiable
<?php namespace App; use Digitalcloud\ReactiveNotification\Traits\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use Notifiable; }
- 将交付通道从
database
或DatabaseChannel
更改为Digitalcloud\ReactiveNotification\Channels\DatabaseChannel
<?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Notification; use Illuminate\Contracts\Queue\ShouldQueue; use Digitalcloud\ReactiveNotification\Channels\DatabaseChannel; class InvoicePaid extends Notification implements ShouldQueue { use Queueable; public function via($notifiable) { return [DatabaseChannel::class,'.../']; } public function toDatabase($notifiable){ return [ "title"=> trans("invoice_title"), "details"=> trans("invoice_details"), ]; } }
示例
$user->notify(new InvoicePaid($invoice)); \App::setLocale("en"); $result = $user->notifications()->first()->data;
结果将是[ "title" => "发票标题", "details" => "发票详情" ]
然后更改旧语言从en
到ar
\App::setLocale("ar"); $result = $user->notifications()->first()->data;
然后结果是[ "title" => "发票标题", "details" => "发票详情" ]