Tp5·个人规范化数据库操作示例
2020-04-06 本文已影响0人
三米板
插入
Model中创建一个add方法
namespace app\common\model;
use think\Model;
class BaseModel extends Model {
/**
* 新增
* @param $data
* @return mixed
*/
public function add($data) {
if(!is_array($data)) {
exception('传递数据不合法');
}
$this->allowField(true)->save($data);
return $this->id;
}
}
使用:
$data = input('post.');
$data['status'] = 2; //手动更新或者添加某些字段
$id = model('AdminUser')->add($data);//手动调用我们model 中的add方法,返回添加的主键id
更新多个字段
我们更新多个字段的时候,注意where不要合适 where,要使用isUpdate来限制,如下:
$data = input('post.');
$where = ['id'=>$data['id']];
model('AdminUser')->isUpdate(true,$where)->allowfield(true)->save($data) ;
如果我们把isUpdate改为了where就会报类似于:method not exist:think\db\Query的错误,这一点我们谨记。
另外,我们配合了isUpdate方法,我们就不要使用update方法更新了,我们就要使用save()
//如下同样会报错
#错误示范:$userModel->isUpdate(true,$where)->allowfield(true)->update($data) ;
更新
这个更新操作和上面的多字段更新,不同的一方面是,我们明确了更新的字段。所以要注意和上面多字段模糊型的更新多加区别。
我们需要准备两个东西,
1:更新的字段以及其值
2:更新数据的条件
$where = [];
$update = ['status'=>config3('enum.admin_user_status.disable')];//更新的数据
$where['id'] = $data['id']; //更新的条件
执行更新操作
$count = model('AdminUser') ->where($where) ->update($update) ;
注意
这个update方法,返回了更新数据的数量。
如果要更新的字段,和我们要更新的值一样的话,就会返回0 ,因为和原值相同,没有做更新,并不代表没有更新成功~!!!这一点要注意。