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

Der Controller übergibt den Wert an View in PHP

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-08-18 09:16:131979Durchsuche

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>

testController.class.php

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

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>

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>

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>

testController.class.php

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

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>

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>

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>

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

<code>   $this->assign($key,$value);</code>

}
öffentliche Funktion display(){

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

}
}

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