首页›模型层›Model\Model CRUD
Model\Model CRUD
find / save / delete 数据操作与变更追踪
本页内容
- 实例方法
- save 分支细节
- 变更追踪
实例方法
| 方法 | 签名 | 行为 |
|---|---|---|
find | find() | 按当前条件查单条;有主键值则 where(主键);成功置 __is_created=false 并 initValue |
save | save() | beforeSave() → __is_created ? saveInsert() : saveUpdate() |
delete | delete() | 要求主键已设置,where(主键=值)->delete() |
beforeSave | beforeSave() | 空钩子,子类覆写做保存前处理 |
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 赋值时与旧值比对(经输入过滤器),变化才置 isChanged;listValuesChanged() 只列出变更字段——save 只写变更字段,避免整行覆盖。
KuoqiPHP v1.05 · 离线静态文档 · 界面基于 KuoqiUI ·
返回首页