国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Qu'est-ce qu'une relation polymorphe?
Comment définir une relation polymorphe?
Définition du modèle
Comment rédiger la migration de la base de données?
Quelles sont les utilisations courantes des relations polymorphes?
à quoi devriez-vous faire attention lorsque vous l'utilisez?
Maison cadre php Laravel Travailler avec des relations éloquentes polymorphes à Laravel?

Travailler avec des relations éloquentes polymorphes à Laravel?

Jul 12, 2025 am 03:04 AM

Les relations polymorphes permettent à un modèle d'associer plusieurs types de modèles différents dans Laravel. Il est mis en ?uvre via des méthodes Morphto et Morphmany, telles que le modèle de commentaire peut appartenir à la publication et à la vidéo en même temps; La base de données utilise des champs COMENTABLE_ID et commentable_type pour identifier les objets associés; Les utilisations courantes incluent le système de commentaires, les téléchargements de pièce jointe et la journalisation; Lorsque vous l'utilisez, vous devez faire attention à l'espace de noms de classe, aux performances de requête et au traitement de la suppression douce.

Travailler avec des relations éloquentes polymorphes à Laravel?

Il n'est en fait pas compliqué de gérer les relations éloquentes polymorphes dans Laravel, mais il faut comprendre ses scénarios d'application et ses méthodes d'utilisation. Il est principalement utilisé pour permettre à un modèle d'être associé à plusieurs autres modèles, tels qu'une fonction "commentaire" qui peut appartenir à un article, une vidéo ou un utilisateur en même temps.

Travailler avec des relations éloquentes polymorphes à Laravel?

Qu'est-ce qu'une relation polymorphe?

En termes simples, les relations polymorphes sont pour permettre à un modèle d'établir de manière flexible des associations avec plusieurs types de modèles différents. La clé de cette relation est qu'une table peut correspondre à plusieurs modèles parents .

Travailler avec des relations éloquentes polymorphes à Laravel?

Par exemple, vous avez un modèle Comment qui peut appartenir à Post (article) ou Video (vidéo). à l'heure actuelle, il peut être réalisé en utilisant des relations polymorphes.

Eloquent fait cela avec deux champs dans la base de données:

Travailler avec des relations éloquentes polymorphes à Laravel?
  • commentable_id : enregistrer l'ID du modèle associé
  • commentable_type : enregistre le nom de classe du modèle associé (généralement l'espace de noms complet du modèle)

Comment définir une relation polymorphe?

Définition du modèle

Prenez le modèle Comment comme exemple:

 // comment.php
fonction publique commentable ()
{
    retourner $ this-> morphto ();
}

Ensuite, ajoutez le code suivant aux modèles Post et Video :

 // post.php
Commentaires de la fonction publique ()
{
    retourner $ this-> morphmany (commentaire :: class, ?commentable?);
}

// video.php
Commentaires de la fonction publique ()
{
    retourner $ this-> morphmany (commentaire :: class, ?commentable?);
}

De cette fa?on, qu'il s'agisse d'un article ou d'une vidéo, vous pouvez avoir votre propre liste de commentaires.


Comment rédiger la migration de la base de données?

Lors de la création de tableaux comments , vous devez ajouter un champ polymorphe. Laravel fournit des méthodes pratiques:

 Schéma :: Create ('commentaires', fonction (tableau Blueprint $) {
    $ table-> id ();
    $ table-> text ('contenu');
    $ table-> unsignedBigInteger ('commentable_id');
    $ table-> String ('commentable_type');
    $ Table-> TimeStamps ();
});

Ou utilisez morphs plus concise:

 $ table-> morphs (?commentable?);

Cela créera automatiquement les deux champs mentionnés ci-dessus.


Quelles sont les utilisations courantes des relations polymorphes?

Les relations polymorphes sont très pratiques dans le développement réel, et les scénarios d'utilisation courants comprennent:

  • Système de commentaires : Comme mentionné ci-dessus, les commentaires peuvent appartenir à plusieurs types de contenu.
  • Téléchargement de la pièce jointe : une fonction de téléchargement de fichiers peut avoir besoin de prendre en charge différents types de pièces jointes telles que des images, des documents, des PDF, etc., et ces pièces jointes peuvent appartenir à différents modèles.
  • Journalisation : Lors de l'enregistrement des journaux d'opération, les objets d'opération peuvent être différents modèles tels que les utilisateurs, les administrateurs, les articles, etc.

à quoi devriez-vous faire attention lorsque vous l'utilisez?

Bien que les relations polymorphes soient pratiques, il existe de petits détails faciles à ignorer:

  • Assurez-vous que le champ commentable_type stocke le nom complet de la classe (avec espace de noms).
  • Soyez conscient des problèmes de performances lorsque les requêtes, en particulier lorsque vous souhaitez obtenir des données associées à partir de plusieurs modèles, des problèmes de requête N 1 peuvent se produire.
  • Si vous utilisez la suppression douce, n'oubliez pas de déterminer si vous souhaitez inclure des enregistrements de suppression douce.

Par exemple, interrogez tous les commentaires appartenant à un message:

 $ post = post :: find (1);
$ commentaires = $ post-> commentaires;

Si vous souhaitez charger des commentaires sur plusieurs modèles à la fois, vous pouvez utiliser morphMany with() pour optimiser:

 $ Posts = Post :: avec ('commentaires') -> get ();

Fondamentalement, c'est tout. Les relations polymorphes ne sont pas particulièrement difficiles, mais elles sont susceptibles de confondre les directions de morphTo et morphMany lorsqu'elles sont exposées pour la première fois. Tant que vous clarifiez qui est le parti "associé" et qui est le parti "activement associé", vous pouvez l'utiliser en douceur.

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

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)

Quelles sont les politiques à Laravel et comment sont-elles utilisées? Quelles sont les politiques à Laravel et comment sont-elles utilisées? Jun 21, 2025 am 12:21 AM

Inlaravel, Politicys organisationAutorizationLogicFormodelactions.1.PoliciesAreclasseswithMethodsLikeView, Create, Update etdeleTeTeTrueTrueorfalSebaseDonUserperMissions.2.ToregisterApolicy, MaptheModeltOtspolicyInThes.2.

Comment créer de nouveaux enregistrements dans la base de données à l'aide d'éloquente? Comment créer de nouveaux enregistrements dans la base de données à l'aide d'éloquente? Jun 14, 2025 am 12:34 AM

Pour créer de nouveaux enregistrements dans la base de données à l'aide d'éloquente, il existe quatre méthodes principales: 1. Utilisez la méthode de création pour créer rapidement des enregistrements en transmettant le tableau d'attribut, tels que l'utilisateur :: Create (['name' => 'Johndoe', 'email' => 'John@example.com']); 2. Utilisez la méthode de sauvegarde pour instancier manuellement le modèle et attribuer des valeurs pour enregistrer une par une, ce qui convient aux scénarios où une affectation conditionnelle ou une logique supplémentaire est requise; 3. Utilisez FirstOrCreate pour trouver ou créer des enregistrements en fonction des conditions de recherche pour éviter les données en double; 4. Utilisez UpdateorCreate pour trouver des enregistrements et mettre à jour, sinon, créez-les, ce qui convient au traitement des données importées, etc., qui peuvent être répétitives.

Quel est le but de l'outil de ligne de commande artisanale à Laravel? Quel est le but de l'outil de ligne de commande artisanale à Laravel? Jun 13, 2025 am 11:17 AM

Artisan est un outil de ligne de commande de Laravel pour améliorer l'efficacité du développement. Ses fonctions principales incluent: 1. Générer des structures de code, telles que les contr?leurs, les modèles, etc., et créer automatiquement des fichiers via MADE: Controller et autres commandes; 2. Gérer la migration de la base de données et remplir, utiliser migrer pour exécuter la migration, et db: semences pour remplir les données; 3. Prise en charge des commandes personnalisées, telles que Make: Command Creation Class Command Class pour implémenter l'encapsulation de la logique métier; 4. Fournir des fonctions de débogage et de gestion de l'environnement, telles que la clé: générer pour générer des clés et servir à démarrer le serveur de développement. La ma?trise de l'utilisation de l'artisan peut améliorer considérablement l'efficacité du développement de Laravel.

Comment installer Laravel sur mon système d'exploitation (Windows, MacOS, Linux)? Comment installer Laravel sur mon système d'exploitation (Windows, MacOS, Linux)? Jun 19, 2025 am 12:31 AM

Oui, YouCaninstallLaravelonanyOperatingSystemByfollowingTheSesteps: 1. InstallphpanDrequedExtensionsLikembstring, OpenSSL etxmlusingToolsLILLOxAmPonWindows, HomebrewonMacos, oraptonlinux; 2.InstallPoser, usinganinstalleronwindowswordrsormialCommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowsterminbcommandonson

Comment définir des méthodes (actions) dans un contr?leur? Comment définir des méthodes (actions) dans un contr?leur? Jun 14, 2025 am 12:38 AM

La définition d'une méthode (également connue sous le nom d'action) dans un contr?leur est de dire à la demande quoi faire lorsque quelqu'un visite une URL spécifique. Ces méthodes traitent généralement les demandes, traitent les données et renvoient des réponses telles que les pages HTML ou JSON. Comprendre la structure de base: la plupart des cadres Web (tels que RubyOnRails, Laravel ou SpringMVC) utilisent des contr?leurs pour regrouper les opérations liées. Les méthodes de chaque contr?leur correspondent généralement à un itinéraire, c'est-à-dire le chemin d'établissement d'URL auquel quelqu'un peut accéder. Par exemple, il peut y avoir les méthodes suivantes dans PostController: 1.Index () - Afficher la liste des postes; 2.Show () - Afficher les messages individuels; 3.Create () - gérer la création de nouveaux messages; 4.U

Comment faire des tests à Laravel? (Test d'artisan PHP) Comment faire des tests à Laravel? (Test d'artisan PHP) Jun 13, 2025 am 12:02 AM

ToruntestSinLaravelEffective, uthethPartisantStCommand qui-même sifflifiesphpunisage.1.setupa.env.testingfileandconfigurephpunit.xmltousetestDatabaselikesqlite.2.GenerateTestSusingPartisanMake: Test, using - UnitForUrst.writeTetswithesSanMake: Test, Using - Unitfornits.writeTetswitheswithes

Que sont les contr?leurs à Laravel et quel est leur objectif? Que sont les contr?leurs à Laravel et quel est leur objectif? Jun 20, 2025 am 12:31 AM

Le r?le principal du contr?leur dans Laravel est de traiter les demandes HTTP et de retourner les réponses pour garder le code soigné et maintenable. En concentrant la logique de demande pertinente dans une classe, le contr?leur simplifie le fichier de routage, tel que la mise en ?uvre de l'affichage du profil utilisateur, de l'édition et de la suppression des opérations dans différentes méthodes d'utilisation UserController. La création d'un contr?leur peut être implémentée via la commande artisan phartisanmake: ControllerSerController, tandis que le contr?leur de ressource est généré à l'aide de l'option --Resource, couvrant les méthodes pour les opérations de crud standard. Ensuite, vous devez lier le contr?leur dans l'itinéraire, comme Route :: get ('/ user / {id

Comment personnaliser les vues et la logique d'authentification dans Laravel? Comment personnaliser les vues et la logique d'authentification dans Laravel? Jun 22, 2025 am 01:01 AM

Laravel permet des vues d'authentification personnalisées et de la logique en rempla?ant le stub et le contr?leur par défaut. 1. Pour personnaliser la vue d'authentification, utilisez la commande phPartisanVendor: publish-tag = laravel-auth pour copier le modèle de lame par défaut dans le répertoire Ressources / vues / auth et modifier, tels que l'ajout de la case "Termes d'utilisation". 2. Pour modifier la logique d'authentification, vous devez ajuster les méthodes de registreController, LoginController et ResetPasswordContrller, telles que la mise à jour de la méthode Validator () pour vérifier le champ ajouté, ou réécrire R

See all articles