tp框架总结(四)
一 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
- 'DB_CONFIG1' = array(
- 'db_type' => 'mysql',
- 'db_user' => 'root',
- 'db_pwd' => '1234',
- 'db_host' => 'localhost',
- 'db_port' => '3306',
- 'db_name' => 'thinkphp'
- ),
- //数据库配置2
- '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框架总结(四)的更多相关文章
- TP框架基础(四)----添加数据
[数据添加] add() 该方法返回被添加的新记录的主键id值 两种方式实现数据添加 1. 数组方式数据添加 $goods = D(“Goods”); $arr = array(‘goods_name ...
- tp框架总体学习总结(一)
一.TP框架的下载和安装 Tp框架下载网址:http://www.thinkphp.cn/ 在wamp的www目录下创建一个目录tpshop目录 1. 将下载好的包压缩后将文件包里的所有文件复制到创 ...
- 第九十七天请假 PHP TP框架 MVC模式
MVC : M->Model 模型(数据层) V->View 视图(视图层) C->Controller 控制器(逻辑层) M : 操作数据(连接数据 ...
- TP框架基础
什么是TP框架: 一堆代码的集合,里边有变量.函数.类.常量,设计模式MVC.AR数据库.单例等等.全称是Tinkphp框架; 为什么使用框架: 使用框架将全部精力集中在业务层次,节省50-60%的工 ...
- TP框架 基础1
php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...
- tp框架基础(详细步骤分解,易懂)下
在浏览器中如果要访问操作方法的时候以什么方式来访问 有四种方式 第一种是get方式,第二种是访问路径 这四种方式我们可以通过修改配置文件来改掉url的模式 我们需要来改一下我们的配置文件 在这个路径下 ...
- ThinkPhp框架:有条件的数据库查询、tp框架的其他知识
上一篇的随笔写的是基本操作,现在可以做一些高级操作,例如有条件的查询数据,有分页的条件查询数据 一.一个条件的查询数据 查询数据自然是先要显示出数据,然后根据条件进行查询数据 (1)显示出表的数据 这 ...
- tp框架的url模式
tp框架url地址可以由以下四种 http://网址/index.php?m=XX&c=XX&a=XX 基本get模式 http://网址/index.php/模块/控制器/操作方 ...
- tp框架中的一些疑点知识-5
关于vim中的缓存区的前后bp和bn的界定 通过命令ls可以看到 缓存区的 排序. 最开始打开的文件排在最上面, 序号最小. 那么它们就是 更 前 的缓冲区. 序号更前的用bp, 序号靠后的用bn. ...
- TP框架---thinkphp基础知识
php框架 发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...
随机推荐
- selenium环境搭建
开发环境: 1.jdk 2.eclipse 3.selenium,selenium只需要selenium-java-2.45.jar这个就可以 具体搭建步骤可参考:http://www.cnblogs ...
- 转载:Java的接口及实例
转自:http://blog.csdn.net/liujun13579/article/details/7736116/ 一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特 ...
- Weblogic是瓦特?和JVM是瓦特关系?
所谓固定内存60M是瓦特? 以下内容是个瓦特? “总内存大小=堆内存+非堆内存1200m:为堆内存大小,如果不指定后者参数则有最大数限制,网上很多文章认为这就是JVM内存,-Xmx为设置最大堆内存60 ...
- 四种方式实现SQLServer 分页查询
SQLServer 的数据分页: 假设现在有这样的一张表:CREATE TABLE test( id int primary key not null identity, names varchar( ...
- Svg path画线(不管是直线还是曲线)在一定情况下线条的宽度不一的情况(记录)
在项目中涉及到svg: 使用path划线实现图表功能. 记录在实现的过程中发现的问题:path在小像素的情况下画出的线条宽度不一样.这是为什么呢? 以下是我做的猜想: 可以看图 在宽度给的很足的时候没 ...
- Windows 10 LTSB
没有商店,没有EDGE,没有助手. 有平板模式,但没有通用应用,内置便笺也没有.可以“固定到开始屏幕”,但没有动态磁贴.有虚拟键盘,但没有Windows Ink. 只有安全补丁更新,据说是10年. 安 ...
- JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- 关于Maven项目
用maven 工程搭建项目,在搭建好之后,运行时却抛出了这样的错误: Error configuring application listener of class org.springframew ...
- 用Intellij打可执行jar包
1.添加maven-assembly-plugin和maven-dependency-plugin assembly:用于打可执行jar包 dependency: 导出依赖包 <plugin&g ...
- 那些年蹚过的坑(c++)
1 main中的参数 尽量用英文双引号括起来,否则可能会出现字符串截断的情况(linux gcc 4.4 不加英文引号的话,遇到英文;会丢弃;后面的部分) 2 包含ipv6地址结构体(in6_addr ...