首页模型层Model\Model CRUD
Model\Model CRUD
find / save / delete 数据操作与变更追踪
本页内容
  1. 实例方法
  2. save 分支细节
  3. 变更追踪

实例方法

方法签名行为
findfind()按当前条件查单条;有主键值则 where(主键);成功置 __is_created=false 并 initValue
savesave()beforeSave() → __is_created ? saveInsert() : saveUpdate()
deletedelete()要求主键已设置,where(主键=值)->delete()
beforeSavebeforeSave()空钩子,子类覆写做保存前处理

save 分支细节

分支行为
saveInsert只插入 isChanged 的字段;返回值(lastInsertId)写入 __primary_key;重置变更标记
saveUpdate只更新 isChanged 字段,where(主键=值);无变更直接返回 true
典型用法
$model = UserModel::choose();
$model->setAttrs(array("name" => "张三", "age" => 30));
$model->save();                    // 新增,返回 lastInsertId 写入主键

$model2 = UserModel::findByid(1);
$model2->setAttr("age", 31);
$model2->save();                   // 更新(只更新变更字段)
$model2->delete();                 // 删除

变更追踪

setAttr/setAttrs 赋值时与旧值比对(经输入过滤器),变化才置 isChangedlistValuesChanged() 只列出变更字段——save 只写变更字段,避免整行覆盖。

KuoqiPHP v1.05 · 离线静态文档 · 界面基于 KuoqiUI · 返回首页