美文网首页
Tp5·个人规范化数据库操作示例

Tp5·个人规范化数据库操作示例

作者: 三米板 | 来源:发表于2020-04-06 14:20 被阅读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 ,因为和原值相同,没有做更新,并不代表没有更新成功~!!!这一点要注意。

    相关文章

      网友评论

          本文标题:Tp5·个人规范化数据库操作示例

          本文链接:https://www.haomeiwen.com/subject/ezfbphtx.html