了解thinkphp(三)

三、tp的核心配置是 ThinkPHP/Conf/convertion.php,

config.php是我们当前自己项目的配置文件,我们可以通过修改该文件达到配置变量的目录,这个文件在系统运行过程中会覆盖convertion.php的配置变量

convertion.php里面主要内容:应用设定,Cookie设置,默认设定,数据库设置,数据缓存设置,错误设置,日志设置,SESSION设置,模板引擎设置,布局设置,URL设置,系统变量名称设置

四、MVC

C:控制器 Controller,MVC的核心

  如果自己要建一个Login控制器: 

  1. 在\Shop\Home\Controller文件夹下新建一个控制器文件LoginController.class.php

  

  2.打开该文件,在里面造控制器Login

  

 

  3.如果要自定义操作方法,在控制器Login类里面加一个函数Login()

    

这样我们就完成了控制器和操作方法的建立,如果要访问我们刚才的Login控制器下的Login方法:

 

  

 

  4.控制器中如果要调用视图层中的模板:

  

 

V:视图view

  视图模板文件存放发位置在:

  

里面没有模板文件,如果我们想要访问Login控制器中的Login方法,首先我们要创建一个Login控制器对应的模板文件夹,该文件夹就对应着Login控制器:

 

 

然后在Login文件夹下再创建一个login.html的模板文件来对应Login控制器下的Login方法:

 

login.html里面写入要显示的代码:

 

再次请求:

M:模型Model  

  a) model本身就是一个类文件 b) 数据库中的每个数据表都对应一个model模型文件 c) 最简单的数据model模型类

  实例化Model的三种方式:

  1.$goods =  new  \命名空间\Model \GoodsModel ( );  

  注意: 这种方法必须在模板中造GoodsModel.class.php,如果没有会报错.  这里是路径所以是反斜杠,区别跨控制器调用

  2.$goods = D(‘模型名称’);    

  

  a) $goods = D(“Goods”);

  

  b) 该$goods是父类Model的对象,但是操作的数据表还是sw_goods

  

  c) $obj = D();  实例化Model对象,没有具体操作数据表,与M()方法效果一致

  

  3.$obj = M(“模型名称”); 

 

  a) 实例化父类Model

 

  b) 可以直接调用父类Model里边的属性,获得数据库相关操作

 

  c) 自定义model就是一个空壳,没有必要实例化自定义model

 

  d) $obj = M(‘数据表标志’);  实例化Model对象,实际操作具体的数据表

 

  D()M()方法的区别:

 

  前者:首先调用Model里面类文件,若没有就查找数据库表。换句话说,D()方法是new操作的简化方法;

 

  后者:不需要model自定义模型文件,直接查数据库表,实例化出model类;

 

posted on 2016-05-20 15:10  年少不上班  阅读(158)  评论(0编辑  收藏  举报

导航