一 ajax的返回

调用实例:

$this->ajaxReturn(返回数据,提示信息,操作状态);

$this->ajaxReturn(返回数据,‘json’);

js:

<script>

$("#btn").click(function(){

$.post('__URL__/test',function(data){

str = data.data+data.info;

if(data.status){

alert(str);

}else{

...........

}

});

})

</script>

php:

public function test(){

$this->ajaxReturn('user1','插入成功',1);

}

二、添加模板替换:

"TMPL_PARSE_STRING" =>array(

'__UPLOAD__' =>__ROOT__.'/Public/uploads',

);

三、模型定义:

当我们定义一个UserModel类的时候,默认访问的是User表

如果我们想在此模型中访问cate表 那么我们就要定义为

protected $tableName = "cate";

如果我们想访问别的前缀和当前前缀不一样的表那么我们就定义为:

protected $trueTableName = "top_cate";

除了数据表的定义外 还可以对数据库进行定义

protected $dbName ='top';

1.实例化基础模型类

$user = new Model("User"); //或者使用M()快捷方法实例化 等效于 $User = M('User');

2.实例化其他公共模型类

$User = new commonModel('User','think_','db_config');

$User = M('CommonModel:User','think_','db_config');

其中第一个参数是模型名称,第二个参数用于设置数据表的前缀 第三个参数用于设置当前 使用的数据库连接信息,留空则取当前项目配置的数据库连接信息

3.实例化用户自定义的MOdel类

$User = D("User");

4.实例化空模型

$Model = new Model(); //$Model = M();

$model ->query("SELECT * FROM think_user WHERE status=1");

空模型用于使用原声的sql查询  也可以跨项目调用

四、字段定义

1.如果想显示获取当前数据表的字段信息的话

$fields = $user ->getDbFields();

五、数据主键

获取当前数据对象的主键名称

$pk = $Model  ->getPk();

 六、属性访问

$User = M('User');

//获取用户的数据

$User ->find(1);

//获取属性的值

$User->name;

//设置属性的值

$User->name = "ThinkPHP";

七、跨库操作

class UserModel extends Model{

protected $dbName = "user";

}

$User = D('User');

echo $User->getLastSql();

//输出的sql语句为 select * from user.think_user;

如果跨库操作时访问的表前缀不一样 设置表的前缀

protected $tablePrefix = "other_";

八、切换数据库

如果项目配置中定义了其他的数据库连接信息

我们就可以直接在db方法中调用配置进行连接了

//数据库配置1

  1. //数据库配置1
  2. 'DB_CONFIG1' = array(
  3. 'db_type'  => 'mysql',
  4. 'db_user'  => 'root',
  5. 'db_pwd'   => '1234',
  6. 'db_host'  => 'localhost',
  7. 'db_port'  => '3306',
  8. 'db_name'  => 'thinkphp'
  9. ),
  10. //数据库配置2
  11. 'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp';

$this->db(1,"DB_CONGIG1")->query(sql语句);

如果切换数据库之后,数据表和当前不一致的话我们可以使用table方法指定要操作的数据表

$this->db(1)->table("top_user")->find();

九、分布式数据库

十、创建数据

1.使用create()方法创建数据对象

$user = M('user');

$user->create();//根据表单提交的post数据创建数据对象

$user->add();// 把创建的数据对象写入数据库

2.使用data()方法创建对象

$data['name'] = "name";

$data['email'] = "403384070@qq.com";

$user->data($data)->add();

十一、系统安全设置

http://www.thinkphp.cn/info/184.html

十二、表单安全验证

tp框架总结(四)的更多相关文章

  1. TP框架基础(四)----添加数据

    [数据添加] add() 该方法返回被添加的新记录的主键id值 两种方式实现数据添加 1. 数组方式数据添加 $goods = D(“Goods”); $arr = array(‘goods_name ...

  2. tp框架总体学习总结(一)

    一.TP框架的下载和安装 Tp框架下载网址:http://www.thinkphp.cn/ 在wamp的www目录下创建一个目录tpshop目录 1.  将下载好的包压缩后将文件包里的所有文件复制到创 ...

  3. 第九十七天请假 PHP TP框架 MVC模式

    MVC : M->Model 模型(数据层)     V->View 视图(视图层)  C->Controller 控制器(逻辑层)            M : 操作数据(连接数据 ...

  4. TP框架基础

    什么是TP框架: 一堆代码的集合,里边有变量.函数.类.常量,设计模式MVC.AR数据库.单例等等.全称是Tinkphp框架; 为什么使用框架: 使用框架将全部精力集中在业务层次,节省50-60%的工 ...

  5. TP框架 基础1

    php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...

  6. tp框架基础(详细步骤分解,易懂)下

    在浏览器中如果要访问操作方法的时候以什么方式来访问 有四种方式 第一种是get方式,第二种是访问路径 这四种方式我们可以通过修改配置文件来改掉url的模式 我们需要来改一下我们的配置文件 在这个路径下 ...

  7. ThinkPhp框架:有条件的数据库查询、tp框架的其他知识

    上一篇的随笔写的是基本操作,现在可以做一些高级操作,例如有条件的查询数据,有分页的条件查询数据 一.一个条件的查询数据 查询数据自然是先要显示出数据,然后根据条件进行查询数据 (1)显示出表的数据 这 ...

  8. tp框架的url模式

    tp框架url地址可以由以下四种 http://网址/index.php?m=XX&c=XX&a=XX   基本get模式 http://网址/index.php/模块/控制器/操作方 ...

  9. tp框架中的一些疑点知识-5

    关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...

  10. TP框架---thinkphp基础知识

    php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...

随机推荐

  1. 从veth看虚拟网络设备的qdisc

    背景 前段时间在测试docker的网络性能的时候,发现了一个veth的性能问题,后来给docker官方提交了一个PR,参考set tx_queuelen to 0 when create veth d ...

  2. mybatis实战教程(mybatis in action)之一:开发环境搭建

    mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载. 首先建立一 ...

  3. css3基础、(弹性、响应式)布局注意点

    E1>E2选择父元素为E元素的所有E2元素(子类选择器) E1+E2选择元素为E1之后的所有E2元素(兄弟选择器) E[attr]只使用属性名,但没有确定任何属性值 E[attr="v ...

  4. InstallShield打包设置相对路径

    InstallShield打包设置相对路径 在使用Installshield 打包安装文件时,添加打包文件时默认使用绝对路径,但是工程文件转移时(复制到其它位置时)编译时就会找不到安装文件,这样很不方 ...

  5. php 升级排错

    lnmp 环境下,升级php版本,模块都加载完成,数据库,nginx 设置都完好,但php 只能用ip 访问数据库,不能用localhost,处理要设置php.ini 的三个mysqld.sock,还 ...

  6. 在linux上通过yum安装JDK

    完全转载自:https://my.oschina.net/andyfeng/blog/601291 这里完整粘贴一份留存 卸载centos自带的jdk 1.查看当前的jdk版本,并卸载 [root@l ...

  7. android中Json的一些应用

    JSON(JavaScript Object Notation) :一种轻量级的数据交换格式,基于JavaScript的一个子集. JSON采用完全独立于语言的文本格式,使JSON成为理想的数据交换语 ...

  8. 使用Lamda生成函数

    #include <functional> int main() { std::function<]; ; i < ;i++ ) fn[i] = [=]() {return i ...

  9. Esfog_UnityShader教程_遮挡描边(原理篇)

    咳咳,有段时间没有更新了,最近有点懒!把不少精力都放在C++身上了.闲言少叙,今天要讲的可和之前的几篇有所不同了,这次是一个次综合应用.这篇内容中与之前不同主要体现在下面几点上. 1.之前我们写的都是 ...

  10. 现代工程仿真CAE技术介绍

    随着现代科学技术的发展,人们正在不断建造更为快速的交通工具.更大规模的建筑物.更大跨度的桥梁.更大功率的发电机组和更为精密的机械设备.这一切都要求工程师在设计阶段就能精确地预测出产品和工程的技术性能, ...