Sian 发表于 2016-3-8 21:55:54

2、使用MVC模型实现基本输出

一、ThinkPHP的输出
1、通过echo等php原生输出方式在页面中输出;
2、通过display方法输出(类似smarty模板引擎)参照:http://www.yusian.com/thread-11086-1-1.html ;
2.1、控制器实现:<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
        public function index(){
                // 1、获取模型数据
                $name = "Sian";
          // 2、分配模板数据
          $this->assign('data', $name);
          // 3、调用模板显示
          $this->display();
        }
}2.2、直接执行会出现如下所示错误提示:

2.3、原因在于默认情况下在Index控制器下的Index方法中执行$this->display()方法会加载视图模板目录下的Index目录下的index.html模板文件
2.4、错误提示没有找相对应的模板文件,因此在View目录下创建一个Index目录,在Index目录下创建一个index.html的模板文件
2.5、文件内容示例如下:<html>
        <body>
                <h1>Hello {$data}!</h1>
        </body>
</html>2.6、运行结果为Hello Sian!
3、修改左右定界符,'TMPL_L_DELIM'、'TMPL_R_DELIM' 两个配置项;
3.1、默认定界符为“{}”, 为防止与其他框架冲突,一般建议修改定界符
3.2、在配置文件中添加如所示        'TMPL_L_DELIM'                =>        '<{',        // 修改左定界符
        'TMPL_R_DELIM'                =>        '}>',        // 修改右定界符二、ThinkPHP模型的使用
1、在开始之前,我们首先在数据库thinkphp中创建一个think_data数据表(以mysql数据库为例):CREATE TABLE IF NOT EXISTS `think_data`(
`id`int(8)unsigned NOT NULL AUTO_INCREMENT,
`data` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAMDEFAULT CHARSET=utf8 ;
INSERT INTO `think_data`(`id`,`data`) VALUES
(1,'thinkphp'),
(2,'php'),
(3,'framework');
2、如果我们需要读取数据库中的数据,就需要在模块配置文件中添加数据库连接信息如下:// 添加数据库配置信息
'DB_TYPE'=>'mysql',// 数据库类型
'DB_HOST'=>'127.0.0.1',// 服务器地址
'DB_NAME'=>'thinkphp',// 数据库名
'DB_USER'=>'root',// 用户名
'DB_PWD'=>'',// 密码
'DB_PORT'=>3306,// 端口
'DB_PREFIX'=>'think_',// 数据库表前缀
'DB_CHARSET'=>'utf8',// 数据库字符集3、接下来,我们修改下控制器方法,添加读取数据的代码:<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
        public function index(){
                // 1.1、创建数据库模型
                $m = M('user');
                // 1.2、查找数据
                $array = $m->select();
                // 1.3、取出数据
                $name = $array['username'];
          // 2、分配模板数据
          $this->assign('data', $name);
          // 3、调用模板显示
          $this->display();
        }
}三、源代码下载:**** Hidden Message *****
页: [1]
查看完整版本: 2、使用MVC模型实现基本输出