Maison >cadre php >PensezPHP >La différence entre thinkphp m et d

La différence entre thinkphp m et d

步履不停
步履不停original
2019-06-13 09:09:443418parcourir

La différence entre thinkphp m et d

Pendant le processus d'instanciation, la méthode D et la méthode M sont souvent utilisées. La différence entre ces deux méthodes est que la méthode M instancie le modèle sans que l'utilisateur définisse une classe de modèle pour chaque donnée. Si la méthode D ne trouve pas la classe de modèle définie, la méthode M est automatiquement appelée. En termes simples : le paramètre d'instanciation M est le nom de la table de la base de données. D instancie le fichier modèle que vous avez créé sous le dossier Modèle

例如:$user = new UserModel();
等价于$user = D('user');
如果实例化的是一个空模型
例如 $Demo = new Model();
那么它等价于 $Demo = M();

La principale différence entre D et M est  : La méthode M ne nécessite pas la création d'un modèle class File, la méthode M ne lit pas la classe de modèle, donc la vérification automatique n'est pas valide par défaut, mais elle peut être réalisée par affectation dynamique et la méthode D doit créer la classe de modèle. Nous pouvons utiliser les deux méthodes suivantes pour créer un objet de mappage d'une table de données. La première est : $Test = D('Test') La seconde est : $Test = new Model('Test'). mapper les données L'exécution d'opérations de sélection, d'insertion, de suppression et de mise à jour est très différente dans la vérification des données. L'utilisation de la première méthode pour instancier un modèle aura une fonction de vérification des données. Si le titre n'est pas renseigné, le message « Veuillez saisir le titre ». " (il s'agit d'une fonction de vérification automatique fournie par tp. Bien entendu, les conditions de vérification doivent être définies dans le modèle correspondant); si vous utilisez le deuxième type, il ne sera pas disponible... Il y a une autre différence. Quand $trueTableName est utilisé, il doit utiliser $test=d('test') signifie que la requête est la table de test. Si $test=m('test') est utilisé, cela signifie que le côté données de la requête est think_test. . Le test de la version thinkphp2.0 a le problème ci-dessus

En termes simples : D consiste à instancier un modèle basé sur le fichier modèle. M instancie dynamiquement un objet Model en instanciant directement la méthode Model (classe de base ThinkPHP), même si le fichier Model correspondant n'existe pas

A instancie rapidement la bibliothèque de classe Action B exécute la classe de comportement Configuration C Méthode d'accès aux paramètres D Instanciation rapide de la bibliothèque de classes Model F Méthode d'accès aux données texte simple et rapide L Méthode d'accès aux paramètres de langage M Modèle d'instanciation rapide hautes performances R Appel à distance rapide Méthode de classe d'action S Méthode d'accès rapide au cache U Méthode de génération dynamique d'URL et de redirection W et Widget rapide la méthode de sortie D fonction instancie le module sous Lib/Model de votre projet actuel. Si le module n'existe pas, l'objet du Modèle instancié est directement renvoyé (la signification est la même que la fonction M()). Et M renvoie uniquement l'objet qui instancie le modèle. Son paramètre $name est utilisé comme nom de table de la base de données pour gérer les opérations sur la base de données.

Pour plus d'articles techniques liés à ThinkPHP, veuillez visiter la colonne Tutoriel ThinkPHP pour apprendre !

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:
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