Heim >PHP-Framework >Denken Sie an PHP >Der Unterschied zwischen thinkphp m und d
Während des Instanziierungsprozesses werden häufig die D-Methode und die M-Methode verwendet. Der Unterschied zwischen diesen beiden Methoden besteht darin, dass die M-Methode das Modell instanziiert, ohne dass der Benutzer für jede Daten eine Modellklasse definiert Wenn die D-Methode die definierte Modellklasse nicht findet, wird automatisch die M-Methode aufgerufen. Laienhaft ausgedrückt: Der M-Instanziierungsparameter ist der Tabellenname der Datenbank. D instanziiert die Modelldatei, die Sie im Modellordner erstellt haben
例如:$user = new UserModel(); 等价于$user = D('user'); 如果实例化的是一个空模型 例如 $Demo = new Model(); 那么它等价于 $Demo = M();
Der Hauptunterschied zwischen D und M ist : Die M-Methode erfordert nicht die Erstellung eines Modells Klassendatei: Die M-Methode liest die Modellklasse nicht, sodass die automatische Überprüfung standardmäßig ungültig ist. Sie kann jedoch durch dynamische Zuweisung erreicht werden und die D-Methode muss die Modellklasse erstellen. Wir können die folgenden zwei Methoden verwenden, um ein Zuordnungsobjekt einer Datentabelle zu erstellen. Die erste: $Test = D('Test') Die zweite: $Test = new Model('Test') Obwohl beide Methoden zuordnen können Daten Das Ausführen von Auswahl-, Einfüge-, Lösch- und Aktualisierungsvorgängen ist bei der Datenüberprüfung sehr unterschiedlich. Die Verwendung der ersten Methode zum Instanziieren eines Modells verfügt über eine Datenüberprüfungsfunktion. Wenn der Titel nicht ausgefüllt ist, wird die Meldung „Bitte geben Sie den Titel ein“ angezeigt. (Dies ist eine von tp bereitgestellte automatische Überprüfungsfunktion. Natürlich müssen die Überprüfungsbedingungen im entsprechenden Modell definiert werden, wenn Sie den zweiten Typ verwenden, ist er nicht verfügbar ... Ein weiterer Unterschied besteht darin, dass $trueTableName Wenn $test=d('test') verwendet wird, bedeutet dies, dass die Abfrage die Testtabelle ist. Wenn $test=m('test') verwendet wird, bedeutet dies, dass die Datenseite der Abfrage think_test ist. Beim Thinkphp2.0-Versionstest tritt das obige Problem auf
Laiensprachlich ausgedrückt: D besteht darin, ein Modell basierend auf der Modelldatei zu instanziieren. M instanziiert ein Modellobjekt dynamisch, indem es die Modellmethode (ThinkPHP-Basisklasse) direkt instanziiert, auch wenn die entsprechende Modelldatei nicht vorhanden ist.
A instanziiert schnell die Aktionsklassenbibliothek. B führt die Konfigurationsparameterzugriffsmethode der Verhaltensklasse C aus D Schnelle Instanziierung der Modellklassenbibliothek F Schnelle und einfache Textdatenzugriffsmethode L Sprachparameter-Zugriffsmethode M Schnelles Hochleistungs-Instanziierungsmodell R Schneller Remote-Aufruf Aktionsklassenmethode S Schnelle Cache-Zugriffsmethode U Dynamische URL-Generierungs- und Umleitungsmethode W und schnelles Widget Ausgabemethode D-Funktion instanziiert das Modul unter Lib/Model Ihres aktuellen Projekts. Wenn das Modul nicht vorhanden ist, wird das Objekt des instanziierten Modells direkt zurückgegeben (die Bedeutung ist dieselbe wie bei der Funktion M()). Und M gibt nur das Objekt zurück, das das Modell instanziiert. Sein $name-Parameter wird als Tabellenname der Datenbank verwendet, um Vorgänge in der Datenbank abzuwickeln.
Weitere technische Artikel zu ThinkPHP finden Sie in der Spalte Tutorial zur Verwendung von ThinkPHP.
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen thinkphp m und d. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!