zl程序教程

您现在的位置是:首页 >  其它

当前栏目

ThinkPHP总结

总结 thinkphp
2023-09-14 09:00:01 时间

D和M的区别主要在于

  M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现
  D方法必须有创建模型类,如果找不到,就等同于M

 数据创建

//根据表单提交的POST数据,创建数据对象
$user = M('User');
var_dump($user->create());

注:

  create()方法就是数据创建,数据的结果就是提交的 POST 数据的键值对。提交过来的字段和数据表字段是对应的,否则无法解析。

  create(参数1,参数2)

  参数1-----数据

  参数2----- Model::MODEL_INSERT和 Model::MODEL_UPDATE

create()方法的内部工作分为 9 步:

1.获取数据源(默认是 POST) ;
2.验证数据合法性(非数据或对象会过滤) ,失败则返回 false3.检查字段映射;
4.判断数据状态(新增还是修改) ;
5.数据自动验证,失败则返回 false6.表单令牌验证,失败则返回 false7.表单数据赋值(过滤非法字段和字符串处理) ;
8.数据自动完成;
9.生成数据对象(保存在内存) 。

 

支持的连贯操作有:

1.field,用于定义合法的字段;
2.validate,用于数据自动验证;
3.auto,用于数据自动完成;
4.token,用于令牌验证。

限制可操作的字段

  1.用field

  2.在模型中   

class UserModel s extends Model {
     protected $insertFields = 'user';
     protected $updateFields = 'user';
}

数据写入

add()

支持的连贯操作有

1.table,定义数据表名称;
2.data,指定要写入的数据对象;
3.field,定义要写入的字段;
4.relation,关联查询;
5.validate,数据自动验证;
6.auto,数据自动完成;
7.filter,数据过滤;
8.scope*,命名范围;
9.bind,数据绑定操作;
10.token,令牌验证;
11.comment,SQL 注释;

数据读取

1.where,查询或更新条件;
2.table,要操作的数据表名称;
3.alias,数据表别名;
4.field,查询字段;
5.order,结果排序;
6.group,查询分组;
7.having,分组再查询;
8.join,多表链接查询;
9.union,合并 SELECT;
10.distinct,取唯一值;
11.lock,锁;
12.cache,缓存;
13.relation,关联查询;
14.result,数据转换;
15.scope,命名范围;
16.bind,数据绑定操作;
17.comment,SQL 注释。

find()获取第一条数据

select()获取所有数据

$user = M('User');
var_dump($user->find()); //获取第一天数据
//显示默认所有数据 var_dump($user->select()); //可以传递数组形式的 SQL
//获取第一条user字段的值 var_dump($user->getField('user'));
//获取所有user字段的值 var_dump($user->getField('user', true));
//传递多个字段,获取所有 var_dump($user->getField('user,email'));
//id冒号分隔 var_dump($user->getField('id,user,email',':'));
//限制2条数据 var_dump($user->getField('id,user,email',2));

 

数据更新

save()

支持的连贯操作

1.where,查询或更新条件;
2.table,要操作的数据表名称;
3.alias,数据表别名;
4.field,查询字段;
5.order,结果排序;
6.lock,锁;
7.relation,关联查询;
8.scope,命名范围;
9.bind,数据绑定操作;
10.comment,SQL 注释。
//修改某一个值
$user = M('User');
$map['id'] = 1;
$user->where($map)->setField('user', '蜡笔大新');
//统计累计,累加累减 $map['id'] = 1; $user->where($map)->setInc('count',1); //累加,setDec 累减

数据删除

delete()

支持的连贯操作

1.where,查询或更新条件;
2.table,要操作的数据表名称;
3.alias,数据表别名;
4.order,结果排序;
5.lock,锁;
6.relation,关联查询;
7.scope,命名范围;
8.bind,数据绑定操作;
9.comment,SQL 注释。

ActiveReocrd  模式

//修改一条数据
$user = M('User');
$user->find(1);
$user->user = '蜡笔老新';
$user->save();

//删除当前找到的数据
$user->find(11);
$user->delete();