digitalcloud / multilingual-notification

此包已被放弃,不再维护。作者建议使用https://github.com/DigitalCloud/reactive-notification包。

响应式Laravel通知

v1.0 2018-12-30 13:10 UTC

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

使用方法

  1. 将模型中使用的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;
}
  1. 将交付通道从databaseDatabaseChannel更改为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" => "发票详情" ]

然后更改旧语言从enar

\App::setLocale("ar");
$result = $user->notifications()->first()->data;

然后结果是[ "title" => "发票标题", "details" => "发票详情" ]