Heim > Backend-Entwicklung > PHP-Tutorial > Der Controller übergibt den Wert an View in PHP

Der Controller übergibt den Wert an View in PHP

WBOY
Freigeben: 2016-08-18 09:16:13
Original
1941 Leute haben es durchsucht

Ich möchte ein kleines CMS mit der MVC-Methode schreiben. Ich habe einen Controller, ein Modell und eine Ansicht erstellt, weiß aber nicht, wie ich den Wert vom Controller in die Ansicht schreiben soll.

index.php

<code><?php
require('View/testView.php');
require('Model/testModel.class.php');
require('Controller/testController.class.php');
$testController = new testController();
$testController->show();
?>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

testController.class.php

<code>class testController{
    function show(){
        $testModel = new testModel();
        $data = $testModel->get();
        return $data;
    }
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

testModel.class.php

<code>require('database.php');
get_connection();
class testModel{
    function get(){
        $sql = "SELECT * FROM db_problem";
        $res = mysql_query($sql);
        return $res;

    }
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

testView.php

<code><html>
<head>
    <meta charset="UTF-8">
    <title>BUG列表</title>
</head>
<body>
<table border="1px solid #bebebe" width="980px" cellpadding="1" cellspacing="0">
    <tr>
        <th width="10%">ID</th>
        <th width="70%">问题</th>
        <th width="20%">提交时间</th>
    </tr>
    <tr style="text-align: center">
        <td></td>
        <td></td>
        <td></td>
    </tr>
</table>
</body>
</html>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Antwortinhalt:

Ich möchte ein kleines CMS mit der MVC-Methode schreiben. Ich habe einen Controller, ein Modell und eine Ansicht erstellt, weiß aber nicht, wie ich den Wert vom Controller in die Ansicht schreiben soll.

index.php

<code><?php
require('View/testView.php');
require('Model/testModel.class.php');
require('Controller/testController.class.php');
$testController = new testController();
$testController->show();
?>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

testController.class.php

<code>class testController{
    function show(){
        $testModel = new testModel();
        $data = $testModel->get();
        return $data;
    }
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

testModel.class.php

<code>require('database.php');
get_connection();
class testModel{
    function get(){
        $sql = "SELECT * FROM db_problem";
        $res = mysql_query($sql);
        return $res;

    }
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

testView.php

<code><html>
<head>
    <meta charset="UTF-8">
    <title>BUG列表</title>
</head>
<body>
<table border="1px solid #bebebe" width="980px" cellpadding="1" cellspacing="0">
    <tr>
        <th width="10%">ID</th>
        <th width="70%">问题</th>
        <th width="20%">提交时间</th>
    </tr>
    <tr style="text-align: center">
        <td></td>
        <td></td>
        <td></td>
    </tr>
</table>
</body>
</html>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Zuerst müssen Sie die Vorlage im Controller angeben, z. B. $this->display('test'); und dann die Vorlage in die Anzeigemethode

einbinden

Wenn Sie es komplizierter machen und der Vorlage Syntaxzucker hinzufügen möchten, können Sie beurteilen, ob die Vorlage kompilierte Dateien in der Anzeige enthält. Wenn nicht, führen Sie eine Kompilierung durch (im Wesentlichen eine regelmäßige Ersetzung, z. B. Ersetzen von {$test} durch $ this- >test) und fügen Sie dann die kompilierte Datei ein

Auf diese Weise können Sie die Variablen des Controllers direkt nutzen

Ich habe bereits ein einfaches MVC-Framework geschrieben. Der Kerninhalt befindet sich in Zeile 158 https://github.com/eyblog/mvc...

Speichern Sie im Controller die Variablen und Werte in der Vorlage in den Daten. File_get_content liest den Inhalt der Ansichtsdatei. Der Vorlagenvariablenbezeichner kann beliebig sein, z. B. {$user} oder {. {user}} und dann regulärer Ausdruck Abgleichen und durch die Formel ersetzen und schließlich echo
class Controller {
public $templateData = [] //Speichern Sie die Datenzuordnungstabelle der Vorlagendatei
öffentliche Funktion index(){

<code> $this->assign($key,$value);</code>
Nach dem Login kopieren

}
öffentliche Funktion „assign($key,$value)“{

<code>   $this->assign($key,$value);</code>
Nach dem Login kopieren

}
öffentliche Funktion display(){

<code>   /*加载view文件内容
   /*正则搜索替换
   /*输出</code>
Nach dem Login kopieren

}
}

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage