Heim Backend-Entwicklung PHP-Tutorial Lernen Sie verschiedene Verwendungsmöglichkeiten der Modellereignisse von Laravel kennen

Lernen Sie verschiedene Verwendungsmöglichkeiten der Modellereignisse von Laravel kennen

Jun 13, 2018 am 11:27 AM
laravel 模型 模型事件

Dieser Artikel führt Sie hauptsächlich in die relevanten Informationen zur Verwendung von Modellereignissen in Laravel-Studiennotizen ein. Der Artikel stellt sie ausführlich anhand von Beispielcode vor. Es hat einen gewissen Referenz-Lernwert für alle, die Laravel lernen oder verwenden möchten Wenn Sie es benötigen, können Sie darauf verweisen. Lassen Sie uns mit dem unten stehenden Herausgeber lernen.

Vorwort

Dieser Artikel führt Sie hauptsächlich in die relevanten Inhalte zur Verwendung von Laravel-Modellereignissen ein Beispielcode. Es gibt viele Möglichkeiten, sie zu verwenden. Ich werde im Folgenden nicht auf Details eingehen.

Anwendungsbeispiele

1. Einfach und grob (für lokale Tests)

Definiert im Routing:

Event::listen('eloquent.updated: App\Post',function (){
 dump('测试一下修改事件');
});
Route::post('/post/{id}', 'PostController@update');
Nach dem Login kopieren

2. Ereignisse und Listener generieren

die entsprechenden in EventServiceProvider definieren Beziehung

 protected $listen = [
  'App\Events\PostEvent' => [
    'App\Listeners\PostListener',
   ],
 ];
Nach dem Login kopieren

php artisan event:generate //生成文件
Nach dem Login kopieren

Ereignis Injizieren Sie die Klasse, an der operiert werden soll

listen Fügen Sie in der Handle-Methode die entsprechende Ereignisklasse ein

 public function handle(PostEvent $event)
 {
  dump('测试一下修改事件');
 }
Nach dem Login kopieren

Fügen Sie abschließend das Attribut „events“ im Post-Modell hinzu

 protected $events = [
   'updated' => PostListener::class
 ];
Nach dem Login kopieren

3. Verwenden Sie die Boot-Methode des Frameworks

, um es direkt im relevanten Modell zu definieren

 public static function boot() {
  parent::boot();
  
  static::updated(function($model) {
   dump('测试一下修改事件');
  });
 }
Nach dem Login kopieren

4. Merkmal definieren

Wenn Sie einige Vorgänge für die aktualisierten oder erstellten Ereignisse mehrerer ausführen möchten Modelle, Sie sollten es nicht für jedes Modell separat tun. Schreiben Sie zum Beispiel: Protokoll.

trait LogRecord
{
 //注意,必须以 boot 开头
 public static function bootLogRecord()
 {
  foreach(static::getModelEvents() as $event) {
   static::$event(function ($model){
    $model->setRemind();
   });
  }
 }


 public static function getModelEvents()
 {
  if(isset(static::$recordEvents)){
   return static::$recordEvents;
  }
  return ['updated'];
 }

 public function setRemind()
 {
  dump('记录逻辑操作');
 }
}
Nach dem Login kopieren

Dann verwenden Sie einfach das Merkmal im Modell.

• Erstellen – das Objekt ist fertig, wurde aber noch nicht in die Datenbank geschrieben

• Erstellt – das Objekt wurde in die Datenbank geschrieben

• Aktualisierung – das Objekt wurde geändert, aber nicht in die Datenbank geschrieben

• aktualisiert – die Änderung wurde in die Datenbank geschrieben

• Speichern – das Objekt wurde erstellt oder aktualisiert, aber nicht in die Datenbank geschrieben

• gespeichert – das Objekt erstellt oder aktualisiert die Datenbank, die geschrieben wurde

• Löschen – vor dem Löschen

• gelöscht – nach dem Löschen

• Wiederherstellung – vorläufiges Löschen wiederherstellen Vorher

• wiederhergestellt – nach dem Wiederherstellen des vorläufigen Löschens

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Erfahren Sie mehr über die Übertragung von Arrays in Ansichten im Laravel 5-Framework

Modelle und Controller des Laravel 5 Rahmen Und Erlernen des grundlegenden Prozesses der Ansichten

Das obige ist der detaillierte Inhalt vonLernen Sie verschiedene Verwendungsmöglichkeiten der Modellereignisse von Laravel kennen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Keine OpenAI-Daten erforderlich, schließen Sie sich der Liste der großen Codemodelle an! UIUC veröffentlicht StarCoder-15B-Instruct Keine OpenAI-Daten erforderlich, schließen Sie sich der Liste der großen Codemodelle an! UIUC veröffentlicht StarCoder-15B-Instruct Jun 13, 2024 pm 01:59 PM

An der Spitze der Softwaretechnologie kündigte die Gruppe von UIUC Zhang Lingming zusammen mit Forschern der BigCode-Organisation kürzlich das StarCoder2-15B-Instruct-Großcodemodell an. Diese innovative Errungenschaft erzielte einen bedeutenden Durchbruch bei Codegenerierungsaufgaben, übertraf erfolgreich CodeLlama-70B-Instruct und erreichte die Spitze der Codegenerierungsleistungsliste. Die Einzigartigkeit von StarCoder2-15B-Instruct liegt in seiner reinen Selbstausrichtungsstrategie. Der gesamte Trainingsprozess ist offen, transparent und völlig autonom und kontrollierbar. Das Modell generiert über StarCoder2-15B Tausende von Anweisungen als Reaktion auf die Feinabstimmung des StarCoder-15B-Basismodells, ohne auf teure manuelle Annotationen angewiesen zu sein.

Yolov10: Ausführliche Erklärung, Bereitstellung und Anwendung an einem Ort! Yolov10: Ausführliche Erklärung, Bereitstellung und Anwendung an einem Ort! Jun 07, 2024 pm 12:05 PM

1. Einleitung In den letzten Jahren haben sich YOLOs aufgrund ihres effektiven Gleichgewichts zwischen Rechenkosten und Erkennungsleistung zum vorherrschenden Paradigma im Bereich der Echtzeit-Objekterkennung entwickelt. Forscher haben das Architekturdesign, die Optimierungsziele, Datenerweiterungsstrategien usw. von YOLO untersucht und erhebliche Fortschritte erzielt. Gleichzeitig behindert die Verwendung von Non-Maximum Suppression (NMS) bei der Nachbearbeitung die End-to-End-Bereitstellung von YOLO und wirkt sich negativ auf die Inferenzlatenz aus. In YOLOs fehlt dem Design verschiedener Komponenten eine umfassende und gründliche Prüfung, was zu erheblicher Rechenredundanz führt und die Fähigkeiten des Modells einschränkt. Es bietet eine suboptimale Effizienz und ein relativ großes Potenzial zur Leistungsverbesserung. Ziel dieser Arbeit ist es, die Leistungseffizienzgrenze von YOLO sowohl in der Nachbearbeitung als auch in der Modellarchitektur weiter zu verbessern. zu diesem Zweck

Die Tsinghua-Universität übernahm und YOLOv10 kam heraus: Die Leistung wurde erheblich verbessert und es stand auf der GitHub-Hotlist Die Tsinghua-Universität übernahm und YOLOv10 kam heraus: Die Leistung wurde erheblich verbessert und es stand auf der GitHub-Hotlist Jun 06, 2024 pm 12:20 PM

Die Benchmark-Zielerkennungssysteme der YOLO-Serie haben erneut ein großes Upgrade erhalten. Seit der Veröffentlichung von YOLOv9 im Februar dieses Jahres wurde der Staffelstab der YOLO-Reihe (YouOnlyLookOnce) in die Hände von Forschern der Tsinghua-Universität übergeben. Letztes Wochenende erregte die Nachricht vom Start von YOLOv10 die Aufmerksamkeit der KI-Community. Es gilt als bahnbrechendes Framework im Bereich Computer Vision und ist für seine End-to-End-Objekterkennungsfunktionen in Echtzeit bekannt. Es führt das Erbe der YOLO-Serie fort und bietet eine leistungsstarke Lösung, die Effizienz und Genauigkeit vereint. Papieradresse: https://arxiv.org/pdf/2405.14458 Projektadresse: https://github.com/THU-MIG/yo

Vergleich der neuesten Versionen von Laravel und CodeIgniter Vergleich der neuesten Versionen von Laravel und CodeIgniter Jun 05, 2024 pm 05:29 PM

Die neuesten Versionen von Laravel 9 und CodeIgniter 4 bieten aktualisierte Funktionen und Verbesserungen. Laravel9 übernimmt die MVC-Architektur und bietet Funktionen wie Datenbankmigration, Authentifizierung und Template-Engine. CodeIgniter4 nutzt die HMVC-Architektur, um Routing, ORM und Caching bereitzustellen. In Bezug auf die Leistung sorgen das auf Dienstanbietern basierende Designmuster von Laravel9 und das leichte Framework von CodeIgniter4 für eine hervorragende Leistung. In praktischen Anwendungen eignet sich Laravel9 für komplexe Projekte, die Flexibilität und leistungsstarke Funktionen erfordern, während CodeIgniter4 für schnelle Entwicklung und kleine Anwendungen geeignet ist.

Technischer Bericht von Google Gemini 1.5: Einfache Prüfung von Mathematik-Olympiade-Fragen, die Flash-Version ist fünfmal schneller als GPT-4 Turbo Technischer Bericht von Google Gemini 1.5: Einfache Prüfung von Mathematik-Olympiade-Fragen, die Flash-Version ist fünfmal schneller als GPT-4 Turbo Jun 13, 2024 pm 01:52 PM

Im Februar dieses Jahres brachte Google das multimodale Großmodell Gemini 1.5 auf den Markt, das durch technische und Infrastrukturoptimierung, MoE-Architektur und andere Strategien die Leistung und Geschwindigkeit erheblich verbesserte. Mit längerem Kontext, stärkeren Argumentationsfähigkeiten und besserem Umgang mit modalübergreifenden Inhalten. Diesen Freitag hat Google DeepMind offiziell den technischen Bericht zu Gemini 1.5 veröffentlicht, der die Flash-Version und andere aktuelle Upgrades behandelt. Das Dokument ist 153 Seiten lang. Link zum technischen Bericht: https://storage.googleapis.com/deepmind-media/gemini/gemini_v1_5_report.pdf In diesem Bericht stellt Google Gemini1 vor

Was ist einsteigerfreundlicher: Laravel oder CodeIgniter? Was ist einsteigerfreundlicher: Laravel oder CodeIgniter? Jun 05, 2024 pm 07:50 PM

Für Anfänger bietet CodeIgniter eine sanftere Lernkurve und weniger Funktionen, deckt aber die Grundbedürfnisse ab. Laravel bietet einen größeren Funktionsumfang, weist jedoch eine etwas steilere Lernkurve auf. In Bezug auf die Leistung schneiden sowohl Laravel als auch CodeIgniter gut ab. Laravel verfügt über eine umfangreichere Dokumentation und aktive Community-Unterstützung, während CodeIgniter einfacher und leichtgewichtiger ist und über starke Sicherheitsfunktionen verfügt. Im praktischen Fall der Erstellung einer Blogging-Anwendung vereinfacht EloquentORM von Laravel die Datenmanipulation, während CodeIgniter mehr manuelle Konfiguration erfordert.

Rezension! Fassen Sie umfassend die wichtige Rolle von Basismodellen bei der Förderung des autonomen Fahrens zusammen Rezension! Fassen Sie umfassend die wichtige Rolle von Basismodellen bei der Förderung des autonomen Fahrens zusammen Jun 11, 2024 pm 05:29 PM

Oben geschrieben und das persönliche Verständnis des Autors: Mit der Entwicklung und den Durchbrüchen der Deep-Learning-Technologie haben kürzlich groß angelegte Grundlagenmodelle (Foundation Models) bedeutende Ergebnisse in den Bereichen natürlicher Sprachverarbeitung und Computer Vision erzielt. Große Entwicklungsperspektiven bietet auch die Anwendung von Basismodellen beim autonomen Fahren, die das Verständnis und die Argumentation von Szenarien verbessern können. Durch Vortraining mit umfangreichen Sprach- und visuellen Daten kann das Basismodell verschiedene Elemente in autonomen Fahrszenarien verstehen und interpretieren und Schlussfolgerungen ziehen, indem es Sprach- und Aktionsbefehle für die Entscheidungsfindung und Planung im Fahrbetrieb bereitstellt. Das Basismodell kann durch Datenergänzung mit einem Verständnis des Fahrszenarios ergänzt werden, um jene seltenen realisierbaren Merkmale in Long-Tail-Verteilungen bereitzustellen, die bei routinemäßigem Fahren und bei der Datenerfassung unwahrscheinlich anzutreffen sind.

Laravel vs CodeIgniter: Welches Framework ist besser für große Projekte? Laravel vs CodeIgniter: Welches Framework ist besser für große Projekte? Jun 04, 2024 am 09:09 AM

Bei der Auswahl eines Frameworks für große Projekte haben Laravel und CodeIgniter jeweils ihre eigenen Vorteile. Laravel ist für Anwendungen auf Unternehmensebene konzipiert und bietet modularen Aufbau, Abhängigkeitsinjektion und einen leistungsstarken Funktionsumfang. CodeIgniter ist ein leichtes Framework, das sich eher für kleine bis mittelgroße Projekte eignet und Wert auf Geschwindigkeit und Benutzerfreundlichkeit legt. Für große Projekte mit komplexen Anforderungen und einer großen Anzahl von Benutzern sind die Leistung und Skalierbarkeit von Laravel besser geeignet. Für einfache Projekte oder Situationen mit begrenzten Ressourcen sind die leichten und schnellen Entwicklungsfunktionen von CodeIgniter idealer.

See all articles