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 ,因为和原值相同,没有做更新,并不代表没有更新成功~!!!这一点要注意。

上一篇下一篇

猜你喜欢

热点阅读