Heim  >  Artikel  >  Backend-Entwicklung  >  Fragen zur Rolle des Modells im MVC-Muster

Fragen zur Rolle des Modells im MVC-Muster

WBOY
WBOYOriginal
2016-10-17 09:30:061363Durchsuche

Das m (Modell) in mvc stellt das Modell dar, das hauptsächlich zum Bearbeiten von Daten verwendet wird. Also ob die einfache Verarbeitung von Daten in der C-Schicht oder der M-Schicht erfolgen soll.

<code>$sql = "SELECT id, name FROM test_table"
$result = $conn->query($sql);
$data = $result->getAll();</code>

Wenn ich im obigen Code Daten in ein Array mit der ID als Schlüssel ändern muss, sollte dieser Vorgang dann auf Ebene m oder Ebene c ausgeführt werden?

Antwortinhalt:

Das m (Modell) in mvc stellt das Modell dar, das hauptsächlich zum Bearbeiten von Daten verwendet wird. Also ob die einfache Verarbeitung von Daten in der C-Schicht oder der M-Schicht erfolgen soll.

<code>$sql = "SELECT id, name FROM test_table"
$result = $conn->query($sql);
$data = $result->getAll();</code>

Wenn ich im obigen Code die Daten in ein Array mit der ID als Schlüssel ändern muss, sollte dieser Vorgang dann auf Ebene m oder Ebene c ausgeführt werden?

Persönliche Meinung: M-Layer ist besser
Da Sie MVC verwenden, soll der Kopplungsgrad verringert und die Skalierbarkeit verbessert werden.
Das Schreiben gemischter Nachrichten wird den beiden oben genannten Zwecken nicht dienen.
Wenn das Projekt selbst nicht groß ist, besteht natürlich keine Notwendigkeit, die MVC-Struktur zu verwenden.

Entsprechend dem Problem in Ihrem Beispiel können Sie meiner Meinung nach die Methode „Closure“ in der Modellklasse definieren und diese dann bei der Rückgabe der Daten aufrufen übergeben. Verwenden Sie die Abschlussfunktion, um Ihre Rückgabedaten zu verarbeiten, was flexibler ist

Eigentlich funktioniert alles. Es hängt von Ihren Schnittstellenanforderungen ab, also machen Sie sich keine allzu großen Sorgen! Aufgrund dieser Frage habe ich meinem Lehrer auch gesagt, dass die C-Schicht für die Steuerung von Seitensprüngen und die Kapselung der Anforderungsdaten-Abrufschnittstelle verantwortlich ist, während die M-Schicht für die Überprüfung der Parameter der C-Schicht-Aufrufschnittstelle und die Verarbeitung von Daten verantwortlich ist und die Rückgabe von Daten. Wo ist die Logik? Tatsächlich erfolgt dies alles entsprechend den Anforderungen unseres eigenen Programmdesigns

Machen Sie sich also keine allzu großen Sorgen

Die Entstehung des Modells besteht darin, die gesamte Datenschicht im Modell zu steuern.

<code>耦合性降低了、可读性、维护、扩展性都得到了提高。
</code>

Das c von mvc wird verwendet, um Modell und Ansicht zu verbinden

Die Kernidee von MVC besteht darin, die Schnittstelle (Ansicht), die Logik (Controller) und die Daten (Modell) zu trennen.
Bei Webanwendungen ruft C M auf und gibt V aus.

Seitencontroller:

<code>/post.php?a=create
/post.php?a=read&id=1024
/post.php?a=update&id=1024
/post.php?a=delete&id=1024</code>

Modell (CRUD):

<code>function post_create() {}
function post_read() {}
function post_update() {}
function post_delete() {}</code>

Ansicht:
/view/post.php

Es ist ersichtlich, dass die CRUD-Operationsfunktionen für den Datenmodellbeitrag natürlich in /include/funclass.php zusammengefasst sind, damit sie in anderen Controllern aufgerufen werden können. Kurz gesagt, wenn Sie der Meinung sind, dass Sie diese Operation in anderen Controllern verwenden müssen , dann können Sie darüber nachdenken, es in eine Funktion oder Klasse zu kapseln und es zur „Freigabe“ in funclass.php einzufügen.

Es muss im Controller bedient werden

Fettgedruckter Text请输入代码



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