Maison développement back-end tutoriel php Apprenez plusieurs utilisations des événements modèles de Laravel

Apprenez plusieurs utilisations des événements modèles de Laravel

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

Cet article vous présente principalement les informations pertinentes sur l'utilisation des événements modèles dans les notes d'étude de Laravel. L'article les présente en détail à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence pour que tout le monde puisse apprendre ou utiliser Laravel. si vous en avez besoin, vous pouvez vous y référer. Pour référence, apprenons avec l'éditeur ci-dessous.

Préface

Cet article vous présente principalement le contenu pertinent sur l'utilisation des événements du modèle Laravel. L'article présente les événements du modèle Laravel à travers. exemple de code. Il existe de nombreuses façons de les utiliser. Je n’entrerai pas dans les détails ci-dessous.

Exemples d'utilisation

1. Simple et brut (pour les tests locaux)

Défini dans le routage :

Event::listen('eloquent.updated: App\Post',function (){
 dump('测试一下修改事件');
});
Route::post('/post/{id}', 'PostController@update');
Copier après la connexion

2. Générer des événements et des auditeurs

dans EventServiceProvider Define la relation correspondante

 protected $listen = [
  'App\Events\PostEvent' => [
    'App\Listeners\PostListener',
   ],
 ];
Copier après la connexion

php artisan event:generate //生成文件
Copier après la connexion

Injecter la classe à opérer dans l'événement


Injectez la classe d'événement correspondante dans la méthode handle dans Listen


 public function handle(PostEvent $event)
 {
  dump('测试一下修改事件');
 }
Copier après la connexion

Enfin, ajoutez l'attribut 'events' dans le post model

 protected $events = [
   'updated' => PostListener::class
 ];
Copier après la connexion

3. Utiliser la méthode de démarrage du framework

Définir directement dans le modèle concerné


 public static function boot() {
  parent::boot();
  
  static::updated(function($model) {
   dump('测试一下修改事件');
  });
 }
Copier après la connexion

4. Définir le trait

Si vous le souhaitez. mettre à jour ou créer des événements de plusieurs modèles Pour effectuer certaines opérations, chaque modèle ne devrait-il pas être écrit séparément ? Par exemple : Log.


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('记录逻辑操作');
 }
}
Copier après la connexion

Ensuite, l'utilisation dans le trait du modèle suffit.


• création - l'objet est prêt mais n'a pas été écrit dans la base de données


• créé - l'objet a été écrit dans la base de données


• mise à jour - l'objet a été modifié mais pas écrit dans la base de données


• mis à jour - la modification a été écrite dans la base de données


• enregistrement - l'objet a été créé ou mis à jour mais pas écrit dans la base de données


• enregistré - la création ou la mise à jour de l'objet a été écrite dans la base de données


• suppression - avant la suppression


• supprimé - après la suppression


• restauration - avant la restauration de la suppression logicielle


• restauré - après restauration de la suppression logicielle

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde. Pour obtenir de l'aide, veuillez faire attention au site Web PHP chinois pour plus de contenu connexe !

Recommandations associées :

Apprentissage du transfert de tableaux vers des vues dans le framework Laravel 5

Modèles et contrôleurs de Laravel 5 framework Et apprendre le processus de base des vues

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Aucune donnée OpenAI requise, rejoignez la liste des grands modèles de code ! UIUC publie StarCoder-15B-Instruct Aucune donnée OpenAI requise, rejoignez la liste des grands modèles de code ! UIUC publie StarCoder-15B-Instruct Jun 13, 2024 pm 01:59 PM

À la pointe de la technologie logicielle, le groupe de l'UIUC Zhang Lingming, en collaboration avec des chercheurs de l'organisation BigCode, a récemment annoncé le modèle de grand code StarCoder2-15B-Instruct. Cette réalisation innovante a permis une percée significative dans les tâches de génération de code, dépassant avec succès CodeLlama-70B-Instruct et atteignant le sommet de la liste des performances de génération de code. Le caractère unique de StarCoder2-15B-Instruct réside dans sa stratégie d'auto-alignement pur. L'ensemble du processus de formation est ouvert, transparent et complètement autonome et contrôlable. Le modèle génère des milliers d'instructions via StarCoder2-15B en réponse au réglage fin du modèle de base StarCoder-15B sans recourir à des annotations manuelles coûteuses.

Yolov10 : explication détaillée, déploiement et application en un seul endroit ! Yolov10 : explication détaillée, déploiement et application en un seul endroit ! Jun 07, 2024 pm 12:05 PM

1. Introduction Au cours des dernières années, les YOLO sont devenus le paradigme dominant dans le domaine de la détection d'objets en temps réel en raison de leur équilibre efficace entre le coût de calcul et les performances de détection. Les chercheurs ont exploré la conception architecturale de YOLO, les objectifs d'optimisation, les stratégies d'expansion des données, etc., et ont réalisé des progrès significatifs. Dans le même temps, le recours à la suppression non maximale (NMS) pour le post-traitement entrave le déploiement de bout en bout de YOLO et affecte négativement la latence d'inférence. Dans les YOLO, la conception de divers composants manque d’une inspection complète et approfondie, ce qui entraîne une redondance informatique importante et limite les capacités du modèle. Il offre une efficacité sous-optimale et un potentiel d’amélioration des performances relativement important. Dans ce travail, l'objectif est d'améliorer encore les limites d'efficacité des performances de YOLO à la fois en post-traitement et en architecture de modèle. à cette fin

L'Université Tsinghua a pris le relais et YOLOv10 est sorti : les performances ont été grandement améliorées et il figurait sur la hot list de GitHub L'Université Tsinghua a pris le relais et YOLOv10 est sorti : les performances ont été grandement améliorées et il figurait sur la hot list de GitHub Jun 06, 2024 pm 12:20 PM

La série de référence YOLO de systèmes de détection de cibles a une fois de plus reçu une mise à niveau majeure. Depuis la sortie de YOLOv9 en février de cette année, le relais de la série YOLO (YouOnlyLookOnce) a été passé entre les mains de chercheurs de l'Université Tsinghua. Le week-end dernier, la nouvelle du lancement de YOLOv10 a attiré l'attention de la communauté IA. Il est considéré comme un cadre révolutionnaire dans le domaine de la vision par ordinateur et est connu pour ses capacités de détection d'objets de bout en bout en temps réel, poursuivant l'héritage de la série YOLO en fournissant une solution puissante alliant efficacité et précision. Adresse de l'article : https://arxiv.org/pdf/2405.14458 Adresse du projet : https://github.com/THU-MIG/yo

Comparaison des dernières versions de Laravel et CodeIgniter Comparaison des dernières versions de Laravel et CodeIgniter Jun 05, 2024 pm 05:29 PM

Les dernières versions de Laravel 9 et CodeIgniter 4 fournissent des fonctionnalités et des améliorations mises à jour. Laravel9 adopte l'architecture MVC et fournit des fonctions telles que la migration de bases de données, l'authentification et le moteur de modèles. CodeIgniter4 utilise l'architecture HMVC pour fournir le routage, l'ORM et la mise en cache. En termes de performances, le modèle de conception basé sur le fournisseur de services de Laravel9 et le framework léger de CodeIgniter4 lui confèrent d'excellentes performances. Dans les applications pratiques, Laravel9 convient aux projets complexes qui nécessitent de la flexibilité et des fonctions puissantes, tandis que CodeIgniter4 convient au développement rapide et aux petites applications.

Rapport technique Google Gemini 1.5 : prouvez facilement les questions de l'Olympiade mathématique, la version Flash est 5 fois plus rapide que GPT-4 Turbo Rapport technique Google Gemini 1.5 : prouvez facilement les questions de l'Olympiade mathématique, la version Flash est 5 fois plus rapide que GPT-4 Turbo Jun 13, 2024 pm 01:52 PM

En février de cette année, Google a lancé le grand modèle multimodal Gemini 1.5, qui a considérablement amélioré les performances et la vitesse grâce à l'ingénierie et à l'optimisation de l'infrastructure, à l'architecture MoE et à d'autres stratégies. Avec un contexte plus long, des capacités de raisonnement plus fortes et une meilleure gestion du contenu multimodal. Ce vendredi, Google DeepMind a officiellement publié le rapport technique de Gemini 1.5, qui couvre la version Flash et d'autres mises à jour récentes. Le document fait 153 pages. Lien du rapport technique : https://storage.googleapis.com/deepmind-media/gemini/gemini_v1_5_report.pdf Dans ce rapport, Google présente Gemini1

Lequel est le plus adapté aux débutants, Laravel ou CodeIgniter ? Lequel est le plus adapté aux débutants, Laravel ou CodeIgniter ? Jun 05, 2024 pm 07:50 PM

Pour les débutants, CodeIgniter a une courbe d'apprentissage plus douce et moins de fonctionnalités, mais couvre les besoins de base. Laravel offre un ensemble de fonctionnalités plus large mais a une courbe d'apprentissage légèrement plus raide. En termes de performances, Laravel et CodeIgniter fonctionnent bien. Laravel dispose d'une documentation plus complète et d'un support communautaire actif, tandis que CodeIgniter est plus simple, léger et possède de solides fonctionnalités de sécurité. Dans le cas pratique de la création d'une application de blog, EloquentORM de Laravel simplifie la manipulation des données, tandis que CodeIgniter nécessite une configuration plus manuelle.

Revoir! Résumer de manière exhaustive le rôle important des modèles de base dans la promotion de la conduite autonome Revoir! Résumer de manière exhaustive le rôle important des modèles de base dans la promotion de la conduite autonome Jun 11, 2024 pm 05:29 PM

Écrit ci-dessus et compréhension personnelle de l'auteur : Récemment, avec le développement et les percées de la technologie d'apprentissage profond, les modèles de base à grande échelle (Foundation Models) ont obtenu des résultats significatifs dans les domaines du traitement du langage naturel et de la vision par ordinateur. L’application de modèles de base à la conduite autonome présente également de grandes perspectives de développement, susceptibles d’améliorer la compréhension et le raisonnement des scénarios. Grâce à une pré-formation sur un langage riche et des données visuelles, le modèle de base peut comprendre et interpréter divers éléments des scénarios de conduite autonome et effectuer un raisonnement, fournissant ainsi un langage et des commandes d'action pour piloter la prise de décision et la planification. Le modèle de base peut être constitué de données enrichies d'une compréhension du scénario de conduite afin de fournir les rares caractéristiques réalisables dans les distributions à longue traîne qui sont peu susceptibles d'être rencontrées lors d'une conduite de routine et d'une collecte de données.

Laravel - Commandes artisanales Laravel - Commandes artisanales Aug 27, 2024 am 10:51 AM

Laravel - Artisan Commands - Laravel 5.7 est livré avec une nouvelle façon de traiter et de tester de nouvelles commandes. Il inclut une nouvelle fonctionnalité de test des commandes artisanales et la démonstration est mentionnée ci-dessous ?

See all articles