TP 框架 常识

总结: TP框架常识和难点: 1.每个文件夹的作用【MVC】+config文件  是常用的

                          ①应用程序目录【这个可以修改配置后直接运行配置文件系统自己生成(包括内部的文件)】

①控制器:(存放类文件)控制器的命名格式【控制器名字+Controller.class.php】②视图文件:内部由对应控制器的名字命名的文件夹  存放HTML文件【HTML代码的名字为格式:控制器中得方法名.HTML】③模块:【类文件夹】用于连接数据库,文件名字组成 【表名+Model.class.php】

                            2.文件的命名格式

                            3.修改配置文件

TP框架

TP 框架显示控制器错误   原因: 1.代码出错   2.名字格式错误     3. 修改下面--->页面属性-->标题/编码-->编码签名   到这里把选项取消掉就可以了

一:===========================================================

1.修改配置【入口文件】,运行入口文件【运行完后会自动创建指定的文件】,

2.TP 框架 内部的 初始的 文件夹名字 能不改就不该; 【应用程序目录和内部的home模块可以根据修改配置内容建立自己的新文件】

3. 文件名字格式 不能改【驼峰样式】

4.   

再控制器文件下写 控制器【子类,子类里面加方法,这里命名格式要注意,1驼峰2.方法名+Controller.class.php】 控制器的名字 就是 View 下面文件夹的名字

控制器下面的方法【方法的名字首字母小写但是后面依然保持驼峰样式,方法名字就是 view 里面 HTML文件的名字】

 

 

 

 

 贰: 引用类 【命名空间】

 //放在同一个文件里面
	 $zhuyao = A("Main");
	 echo  $zhuyao->zhuyao();
	 
$zhuyao = new MainController();
	   echo $zhuyao->zhuyao();
	   
//放在同一个 初始命名空间下面
	 $kua = A("Rhome/Main");
	   echo $kua->zhuyao();
	   
	   $zhuyao = new \Rhome\Controller\MainController();//这里的地址注意一下命名空间
	   echo $zhuyao->zhuyao();
	   echo R("Rhome/Main/zhuyao");
	   echo R("Main/zhuyao");
	======================
以上只可以调用放在同一个初始命名空间下的类 出下面的特殊

$zhuyao = new \Rhome\Controller\MainController();//这里的地址注意一下命名空间
	   echo $zhuyao->zhuyao();
这个可以访问不同初始命名空间的类 根据 路径的不同找到文件

 5. 访问的页面不存在的情况 在控制器里面设置一个空方法【系统默认调用该方法】

public function _empty()// 单下划线开头
	{
		echo "页面不存在";
		
	}

 6.访问的控制器不存在的情况【重新设置一个空的控制器,命名要注意】

 

<?php
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller
{
        public function _empty()
        {
          echo "你访问的控制器文件不存在";
        }
}

 叁: 命名空间

命名空间
	相当于虚拟目录
	实现自动加载类的机制

初始命名空间:ThinkPHP和Library

初始命名空间下面有很多根命名空间:

	1.Library里面的文件夹
	
	2.APP的模块文件夹
	
在定义的时候:
从根写起,写到该文件所在的文件夹结束

用的时候:
从根开始写,写到类名结束
命名空间里面用反斜杠
new  的时候  要从初始命名空间开始的(\)见上面例子	
	

  肆:链接数据库

 1.链接数据库首先要设置配置

/* 数据库设置 */
    'DB_TYPE'               =>  '',     // 数据库类型
    'DB_HOST'               =>  '', // 服务器地址
    'DB_NAME'               =>  '',          // 数据库名
    'DB_USER'               =>  '',      // 用户名
    'DB_PWD'                =>  '',          // 密码
    'DB_PORT'               =>  '',        // 端口
    'DB_PREFIX'             =>  '',    // 数据库表前缀
    'DB_PARAMS'             =>  array(), // 数据库连接参数    
    'DB_DEBUG'  	    =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志
    'DB_FIELDS_CACHE'       =>  false,        // 启用字段缓存

 2.获取数据库的数据

           $nh = new \Home\Model\activeModel();//这种方法太麻烦  只针对那种对数据进行修改时 使用
	   在Model模块下建立activeModel.class.php[表名+Model]
	   
	   //==============================
	   
	  $nh = D("score");//这种方法创建子类 返回一个对象【每个元素都进行介绍】
	   
	   //M 方法是我们常用的  只需建立一个父类对象  进行简单的增删改操作
	   $nh = M('score'); //不需要建 Model类就可以直接定义//造父类对象
	   var_dump($nh->select()); //	返回二维数组可用
	   

  3.数据查询

$info = M("Info");
		//var_dump($info);
		
		//查询数据(所有)
		//$arr = $info->select();
               //查多条数据
		//$arr = $info->select("p001,n011");//()内部是主键值,中间用逗号隔开
		//查一条数据
		//$arr = $info->find("p001");
		//条件查询
		//$arr = $info->where("code='p001'")->select();
		//切换数据表
		//$arr = $info->table("nation")->select();
		//$arr = $info->table("nation")->where("code='n001'")->select();
		//选择操作的字段,查询输出指定列的值
		//$arr = $info->field("name,sex,birthday")->select();
		//排序
		//$arr = $info->order("code desc")->select();
		//分页
		//$arr = $info->limit("4,2")->select();//跳过4条数据输出两条数据
		//$arr = $info->page("3,2")->select();//跳过3页输出两条数据,每页2条数据
		//分组
		//$arr = $info->table("car")->field("max(price)")->group("brand")->select();
		//$arr = $info->table("car")->field("max(price)")->group("brand")->having("max(price)>60")->select();
		//连接查询
		//$arr = $info->field("info.code as '代号', info.name as '姓名',nation.name as '民族'")->join("nation on info.nation=nation.code")->select();
		
		//去重
		//$arr = $info->table("car")->distinct(true)->field("brand")->select();
		
		
		
		
		var_dump($arr);

  4.

  

 

posted @ 2017-03-10 22:09  get("新技能")  阅读(221)  评论(0编辑  收藏  举报