検索
ホームページPHPフレームワークLaravellaravelのイベントとオブザーバーについて一緒に学びましょう!

次のコラム laravel チュートリアル では、laravel のイベントとオブザーバーについて紹介します。

1: イベントとリスナー

イベントは比較的広い用語であり、実行されるアクションを表すことができます。イベントとともに表示されるのはリスナーです。リスナーは、ユーザーの行動を監視し、その後の動作に対する処理を実行するために使用されます。
イベント システムは、単一のイベントに互いに独立した複数のリスナーを持つことができるため、アプリケーションのさまざまな側面を分離する優れた方法を提供します。たとえば、注文が発送されるたびにユーザーに通知を送信することができます。注文処理コードを通知コードに結合する代わりに、リッスンできるイベントを作成できます。

イベント:
Laravel フレームワークがイベントを作成したい場合は、次のコマンドを使用して作成できます。

php artisan make:event 事件名称

ファイルは次の場所に保存されます。 app/Events ディレクトリ。

Listener:

リスナーの作成は、次のコマンドを使用して作成できます:

php artisan make:listener 监听器名称

Registration:

イベントとリスナーを作成したら、それらを結合する必要があります。これを EventServiceProvider サービス プロバイダーに登録できます。次のように:

    protected $listen = [
        事件名称 => [
            监听器名称,
         .
        ],
    ];

Distribution

event(new TestEvent());

2: モデル イベント

モデル イベントは、モデル専用に追加された追加機能です。対応するイベントとリスナーを作成します。モデル イベントを使用するときは、モデルによって与えられたルールに従う必要があります。

  • retrieved: モデル インスタンスを取得した後にトリガーされます
  • creating: データベースに挿入する前にトリガーされます。
  • created: データベースへの挿入後にトリガー
  • #updating: データベースへの更新前にトリガー
  • ##updated: データベースへの更新後にトリガー
  • ##saving:データベースに保存する前にトリガーされます (挿入/更新前は、挿入または更新に関係なくトリガーされます)
  • saved: データベースに保存された後にトリガーされます (挿入/更新後、挿入または更新に関係なくトリガーされます)
  • deleting: データベースからレコードを削除する前にトリガーされます
  • deleted: データベースからレコードを削除した後にトリガーされます
  • restoreing: 論理的に削除されたレコードを復元する前にトリガーされます
  • restored: 論理的に削除されたレコードの復元後にトリガーされます
  • モデルでバインドする必要があります
protected $dispatchesEvents = [
        'saving' => \App\Events\TestEvent::class,
//        'updated' => \App\Events\TestEvent::class,
];

3: オブザーバー

イベントが必要ですリスナーの数が増えると登録する必要があり、面倒なのでオブザーバーの使用を検討します。モデル上で複数のイベントをリッスンしている場合は、オブザーバーを使用してこれらのリスナーを別のクラスに編成できます。

オブザーバーの使用:

次のコマンドを使用してオブザーバーを作成できます:

php artisan make:observer

モデルに直接関連付けたい場合は、モデルに関連付けるパラメーターを直接追加することもできます:

php artisan make:observer UserObserver --model=User

オブザーバーの登録:

サービス プロバイダーに登録する

User::observe(UserObserver::class);

またはモデルに登録する
public static function booted()
{
     self::observe(UserObserver::class);
}

関連する推奨事項:
最新の 5 つの Laravel ビデオ チュートリアル

以上がlaravelのイベントとオブザーバーについて一緒に学びましょう!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はjianshuで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Laravelを使用したフルスタック開発:APIとフロントエンドロジックの管理Laravelを使用したフルスタック開発:APIとフロントエンドロジックの管理Apr 28, 2025 am 12:22 AM

Laravelフルスタック開発では、APIとフロントエンドロジックを管理するための効果的な方法には次のものがあります。1)RESTFULコントローラーの使用とリソースルーティング管理API。 2)ブレードテンプレートとvue.jsまたはReactを介したフロントエンドロジックの処理。 3)APIバージョン化とページングを通じてパフォーマンスの最適化。 4)保守性とスケーラビリティを確保するために、バックエンドとフロントエンドのロジックの分離を維持します。

翻訳の紛失:分配されたチームの文化的ニュアンスと誤解翻訳の紛失:分配されたチームの文化的ニュアンスと誤解Apr 28, 2025 am 12:22 AM

totackleculturalintricaciesindistributedteams、fosteranenvironmentebreatingdifferences、vemindfulofcommunication、およびusetoolsforclarity.1)CulturalExchangesSsionsistoriesSionsandtraditions.2)CommunicationMethodStosuitCultulpreference

接続の測定:リモート通信の有効性に関する分析と洞察接続の測定:リモート通信の有効性に関する分析と洞察Apr 28, 2025 am 12:16 AM

COMSESTESTESTESTESTESTESTESTESTESTESTESTESTEREMOTECommunication、Focuson:1)EngagementMetricsLikeMessageFRequenceAndResponsetime、2)SentimentAnalysistogaugeMotionaltone、3)Meating fisondentivencivitionSanceAndAnceAndActionItems、and4)netarysistoundErtindErtindESTANDSTANDCOMMUNICATIONPA

分散チームのセキュリティリスク:遠隔の世界でデータを保護する分散チームのセキュリティリスク:遠隔の世界でデータを保護するApr 28, 2025 am 12:11 AM

toprotectSensitivedAtaindistributedTeams、explientamulti-facetedapproach:1)usedto-to-dencryptionforsecurecommunication、2)applyrole BasedAccessControl(RBAC)tomanagepermissions、3)incryptdataatrestwithkeymanagemenations and4)

電子メールを超えて:リモートコラボレーションのための最新のコミュニケーションプラットフォームの探索電子メールを超えて:リモートコラボレーションのための最新のコミュニケーションプラットフォームの探索Apr 28, 2025 am 12:03 AM

いいえ、emailisnotthebostforremotecollaborationtoday.modern platformlack、Microsoftチーム、ズーム、Asana、およびtrellellofferreal-time通信、プロジェクト管理、および統合FeatureSthancteamWorkedeficiency。

共同ドキュメント編集:分散チームのワークフローの合理化共同ドキュメント編集:分散チームのワークフローの合理化Apr 27, 2025 am 12:21 AM

コラボレーティブドキュメント編集は、分散チームがワークフローを最適化するための効果的なツールです。リアルタイムのコラボレーションとフィードバックループを通じてコミュニケーションとプロジェクトの進捗を改善し、一般的なツールにはGoogleドキュメント、Microsoftチーム、概念が含まれます。使用時のバージョン制御や学習曲線などの課題に注意してください。

前のLaravelバージョンはどのくらいサポートされますか?前のLaravelバージョンはどのくらいサポートされますか?Apr 27, 2025 am 12:17 AM

PreviousVersionOflAravelisSupportedededSedesixmonthsandSecurityFixesseSeCurityfixesseSearaheearAfterAnewMajorversion'sRelease.Surstanding understanding understanding untinding for PlanningUpgrades、保証されている可能性、およびレバレングリエンジュレーリュアリュアリュアリュアリュアシュリュアケーション

フロントエンド開発とバックエンド開発の両方のLaravelの機能を活用しますフロントエンド開発とバックエンド開発の両方のLaravelの機能を活用しますApr 27, 2025 am 12:16 AM

laravelcanbeefeectivelyは、development.1)backend:utilizelaravel'seloquentormforsimprifiedDatabaseInteractions.2)frontend:cleanhtmlandEgratevue.jsfordynamicspasのレバレッジブラデテンプレーズ、エンサイリングレスレスレスフロレンテンドバッキンティントのためにレバレッジブラデテットを使用します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!