ThinkPHP-数据库配置和模板调用

(一)ThinkPHP的数据库配置有多种配置,都很简单,这里仅介绍一种:

修改ThinkPHP/Conf/convention.php,将其中数据库配置填写完整,如下

/* 数据库设置 */
    'DB_TYPE'               =>  'mysql',     // 数据库类型
    'DB_HOST'               =>  'localhost', // 服务器地址
    'DB_NAME'               =>  'test',          // 数据库名
    'DB_USER'               =>  'root',      // 用户名
    'DB_PWD'                =>  'admin',          // 密码
    'DB_PORT'               =>  '3306',        // 端口
    'DB_PREFIX'             =>  '',    // 数据库表前缀

接着来进行查询数据库。

①新建模型(模型的字段对应数据表的列)

namespace Home\Model;

use Think\Model;

class CommunityModel extends Model{

protected $fields = array(

'id', 'name'

);

}

②在某个Controller内构造模型并输出结果

 public function index(){        

        $data = M('Community')->where('ID=2 AND NAME="北园"')->select();

        print_r($data, $tmp);

        $this->show("we are good kids.".$data[0]['NAME']);      

    }

结果就这玩意

ThinkPHP-数据库配置和模板调用_第1张图片

说明一下:ThinkPHP有多种链接数据库的方式,多种构造模型的方法,多种数据库操作,具体看官方教程或文档。(懒得说明,自己过去->http://www.thinkphp.cn/document/index.html)


(二)ThinkPHP的模板映射

还是先来个实例。

①在Home/View目录下新建一个模板文件test.html,内容如下:

 

 

 

 标题

 

 

 

  数组内容:{$array[0].ID} / {$array[0].NAME}

  用户:{$name}

 

 

 

②还是在某个Controller下输出模板内容,代码如下:

public function index(){       

        $data = M('Community')->where('ID=2 AND NAME="北园"')->select();

        print_r($data);

        $this->show("we are good kids.".$data[0]['NAME']);     

        

        //传参给模板

        $this->assign('array', $data);

        $this->assign('name', $data[0]['NAME']);

        $this->display("/test");

    }

③访问后结果就是这玩意(注意传参时名称要对应,不然就取不到数据)

ThinkPHP-数据库配置和模板调用_第2张图片

接着简单说明下。

1.$this->show()函数就是echo函数的封装,将文本内容返回给前端(浏览器请求或ajax请求)。

2.$this->display()函数主要输出模板文件,实质上就是指定显示哪个html文件(也可能是tpl文件),基本上Controller内的一个函数就对应一个页面,与springmvc类似。需要注意的是,该模板参数的路径!(建议用绝对路径,如上面所示,在模板名称前加个/)。

3.ThinkPHP的模板传参与JSP类似,都是将后台数据传到页面中,页面中则用EL表达式(形式为{$parameter})取数据。


最后总结一下,有点费话。

PHP代码跟JSP很相似,每一个PHP文件就相当于一个HMTL,里面的代码可以动态生成模板中的数据。这里的模板是指非完整的html文件(可以没有head、body之类的标签,也可以全部是与数据显示相关的标签),php通过include_once()函数来加载模板,而ThinkPHP则通过display()函数来加载模板。

所谓的渲染输出,是指Controller中处理出待显示的变量数据,然后加载模板,模板中通过EL表达式来调用那些变量数据。
强调一点,这里可以认为模板与对应的处理函数及其之间的变量数据,共同组成最终的显示页面。如上面的例子。

从这点可以看出,Controller中的处理函数,就相当于一个抽象类;模板通过渲染而最终展现的页面就是具体对象,不同的处理和数据产生不同页面效果,但页面的本质没变,因为使用的模板没变,真是显示的数据变了而已。

现在的WEB架构将表现层、控制层完全隔离开,前、后台数据交互则交给了JavaScript和EL表达式来实现;而ThinkPHP的模板渲染机制,本质上可以说是将处理和页面杂糅在了一起,但形式上以单独的模板文件和Controller处理函数隔离开。而现在J2EE的大多数框架也是Controller与页面完全隔离,采用ajax进行数据交互,这个是在本质上隔离了控制层和表现层。



你可能感兴趣的:(ThinkPHP)