ホームページ > PHPフレームワーク > Laravel > Laravel 開発: Laravel 通知を使用して通知を送信するにはどうすればよいですか?

Laravel 開発: Laravel 通知を使用して通知を送信するにはどうすればよいですか?

王林
リリース: 2023-06-13 14:55:46
オリジナル
1903 人が閲覧しました

Laravel は、広く使用されている PHP Web アプリケーション フレームワークで、Web アプリケーションを構築するための最新でエレガントな機能豊富な構文を提供します。 Laravel フレームワークは、通知の送信を含む幅広いツールと機能を提供します。通知は、ユーザーまたは他のシステムに視覚的メッセージまたは音声メッセージを送信するテクノロジーです。通知は単純な警告または複雑な指示にすることができ、非同期にできるため、長時間実行される操作中に使用できます。

この記事では、Laravel Notice を使用して通知を送信する方法を学びます。通知の種類、イベント、チャネルについても見ていきます。私たちの目標は、Laravel 通知を使用して通知を送信し、そのさまざまな種類を理解する単純な Web アプリケーションを作成することです。

前提条件

この記事の内容に入る前に、次の要件が満たされていることを確認する必要があります:

  1. Laravel がローカルまたはサーバーにインストールされていること。
  2. あなたはすでに Laravel フレームワークに慣れており、コントローラー、ルート、ビューの作成方法を理解しています。
  3. データベース (MySQL、PostgreSQL など) をインストールし、Laravel 設定ファイルで設定しました。
  4. これで電子メール関連の設定が完了しました (これは一部の通知タイプに必要です)。

Laravel 通知

Laravel 通知は、通知の処理を簡素化する強力なクラスです。通知は、電子メール、SMS、メール、Slack などのインスタント メッセージング アプリなど、複数のチャネルに送信できます。 Laravel 通知を使用すると、指定したチャネルで通知を作成し、ユーザーにすばやく送信できます。通知は非同期で処理できるため、通知の送信開始の遅れを避けることができます。

Laravel 通知には基本的に次の 2 つの部分があります:

  1. メッセージ自体: アプリケーションで通知を宣言および定義するために使用されるメッセージ本文。
  2. チャネル: さまざまな種類の通知メッセージの送信と処理に使用されます。

ほとんどの開発者は通常、通知の送信が必要なときにメソッドが呼び出されるように、アプリケーション内のモデル メソッドとして通知タイプを定義します。

Laravel での通知の作成

Laravel の通知は、基本的にフレームワークの IlluminateNotificationsNotification 基本クラスを継承する単純な PHP クラスです。各通知は、電子メール、Slack、カスタム Webhook などの複数のチャネルを通じて送信できます。

通知を使用するには、アプリケーションで通知クラスを定義します。通知クラスは、通知のリッチ テキスト メッセージ (メッセージ本文) を表し、通知メッセージがチャネルに送信される前にメッセージ インスタンスとして作成されます。次に、処理のためにこの通知を別のチャネル経由で送信します。

たとえば、サブスクリプションの有効期限が近づいていることをユーザーに通知するメッセージ通知を作成できます。この通知を送信するには、Lavarel アプリケーションで次のような新しい通知クラスを作成します。

php artisan make:notification SubscriptionEnding
ログイン後にコピー

通知経由で電子メールを送信

SubscriptionEnding 通知を作成したので、次にこの通知を作成します。電子メールで送信できます。

メールを送信するには、Laravel のメール システムを設定する必要があります。 Artisan を使用すると、アプリケーションでメール サービスを使用するための SMTP/IMAP 設定が正しいことを確認できます。

php artisan config:cache
ログイン後にコピー

電子メール関連の設定を構成したので、通知クラスに toMail() メソッドを実装する必要があります。このメソッドで電子メール テンプレートを記述します。電子メール テンプレートを定義するには、Laravel の電子メール ビューを使用して独自の HTML/CSS テンプレートを作成できます:

class SubscriptionEnding extends Notification
{
    use Queueable;

    public function __construct($data)
    {
        $this->data = $data;
    }
  
    public function via($notifiable)
    {
        return ['mail'];
    }
    
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line('Hi ' . $this->data['name'] . ', your subscription is about to end in ' . $this->data['days'] . ' days. Please log in to your account and renew your subscription to continue using our services.')
                    ->action('Renew Subscription', url('/subscription'))
                    ->line('Thank you for using our service.');
    }
  
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}
ログイン後にコピー

最後のステップは、ユーザーに通知を送信することです。例:

public function toMail($notifiable)
{
    return (new MailMessage)->markdown('emails.subscription-ending', [
        'name' => $this->data['name'],
        'days' => $this->data['days']
    ]);
}
ログイン後にコピー

us サブスクリプションの有効期限が近づくと、電子メール通知が正常に送信されました。これらの手順に従うことで、カスタマイズされた通知を簡単に作成し、その通知用のカスタム チャネルとメッセージを作成し、それらを介して電子メール、テキスト メッセージ、およびその他の通知を送信できます。

ルート モデル バインディングでの通知の使用

ルート モデル バインディングは、Laravel モデルの非常に強力な機能の 1 つです。いわゆるルートバインディングを使用すると、Laravel はモデルに一致する他のバインディングを自動的に見つけて、それをコントローラーメソッドに自動的に挿入できます。

Laravelでは、呼び出し元のモデルインスタンスをルートにバインドすることを「ルーティングモデルバインディング」と呼びます。ほとんどの場合、ルーティングで特定の識別子を使用して、オブジェクトを検索、取得、取得します。ただし、ルートモデルバインディングでは、Laravel はモデルをルートのパラメーターに自動的にロードします。

Laravel 通知ではルーティング モデル バインディングも使用できます。これは、ルーティング モデル バインディングでの通知の使用を示す簡単な例です。

Artisan 静的コマンドを使用してサンプル コントローラーとルートをすばやく作成できます:

$user = User::find(1)->notify(new SubscriptionEnding(['name' => 'John Doe', 'days' => 5]));
ログイン後にコピー

モデル内でコンテキストを定義します:

php artisan make:controller UserController --resource --no-model
ログイン後にコピー

次に、ルーティング内でコンテキストを定義する必要があります。ファイルを例にとると、routes/web.php ファイルにルートを配置します。

class User extends Authenticatable
{
    public function routeNotificationForMail()
    {
        return $this->email;
    }
}
ログイン後にコピー

コントローラー メソッドに通知を実装します。

Route::get('users/{user}', 'UserController@show');
ログイン後にコピー

これにより、ユーザーに通知が送信され、通知にはタイトルとテキストを含める必要があります。

結論

Laravel 通知は、Web アプリケーションに通知機能を追加する効果的な方法です。 Laravel の強力なシステムを使用すると、通知を簡単に定義して処理し、さまざまなチャネルを使用して通知を送信できます。この記事では、Laravel 通知を使用して電子メール、SMS、メール、Slack などの通知を送信する方法を学びました。また、通知タイプ、イベント、チャネルなど、Laravel 通知の他の機能についても調査しました。

以上がLaravel 開発: Laravel 通知を使用して通知を送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート