Rumah > pembangunan bahagian belakang > tutorial php > 在php中Controller向View传值

在php中Controller向View传值

WBOY
Lepaskan: 2016-08-18 09:16:13
asal
1941 orang telah melayarinya

想用MVC的方式写一个小的CMS,建立了Controller、Model、View,但是不知道Controller向view传值应该怎么写?

index.php

<code><?php require('View/testView.php');
require('Model/testModel.class.php');
require('Controller/testController.class.php');
$testController = new testController();
$testController->show();
?>
</code>
Salin selepas log masuk
Salin selepas log masuk

testController.class.php

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

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>
Salin selepas log masuk
Salin selepas log masuk

testView.php

<code>

    <meta charset="UTF-8">
    <title>BUG列表</title>


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


</code>
Salin selepas log masuk
Salin selepas log masuk

回复内容:

想用MVC的方式写一个小的CMS,建立了Controller、Model、View,但是不知道Controller向view传值应该怎么写?

index.php

<code><?php require('View/testView.php');
require('Model/testModel.class.php');
require('Controller/testController.class.php');
$testController = new testController();
$testController->show();
?>
</code>
Salin selepas log masuk
Salin selepas log masuk

testController.class.php

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

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>
Salin selepas log masuk
Salin selepas log masuk

testView.php

<code>

    <meta charset="UTF-8">
    <title>BUG列表</title>


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


</code>
Salin selepas log masuk
Salin selepas log masuk

首先你得在控制器里指定模版比如 $this->display('test'); 然后在display方法中把模版include进来就行了

如果想复杂一点,给模版增加语法糖,就在display中判断该模版是否有编译过后的文件,没有的话则执行编译(实质上就是正则替换,比如{$test}替换为$this->test),然后include编译后的文件

这样就可以直接使用控制器的变量了

之前写过一个简单的mvc框架,你可以参考一下,核心内容在钱158行https://github.com/eyblog/mvc...

在controller里面把模板中的变量和值存在数据里面,file_get_content读取view视图文件内容,模板变量标识可以按照你喜欢的来,比如{$user}或{{user}},然后正则表达式匹配替换,最后输入echo
class Controller {
public $templateData = []; //保存模板文件的数据映射表
public function index(){

<code> $this->assign($key,$value);</code>
Salin selepas log masuk

}
public function assign($key,$value){

<code>   $this->assign($key,$value);</code>
Salin selepas log masuk

}
public function display(){

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

}
}

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan