为了账号安全,请及时绑定邮箱和手机立即绑定

快速入门ThinkPHP 5.0 --模型篇

难度中级
时长 3小时 0分
学习人数
综合评分9.67
70人评价 查看评价
10.0 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 【增删改查之 改】 方法: $db = Db::name('user') 1. update一般使用:$db->where(['id'=>1])->update(['username'=>'hujianlun','email'=>'hujianlun@qq.com']); // 返回影响记录行数,需要配合where使用。可修改多个字段。 2. setField改单独字段:$db->where(['id'=>3])->setField(['username'=>'hujianlun3']); // 返回影响记录行数,需要配合where使用。只能改一个字段。 3. setInc自增:$db->where(['id'=>3])->setInc('num',5); //返回影响记录行数。如果没有第二个参数,则每次执行,就指定字段的值自增1.如果有第二个参数,则自增第二个参数的数量。 4. setDec自减:和inc差不多的规则。
    查看全部
  • Db类连接

    查看全部
  • ->where('字段名','表达式','值')  

    ->whereOr('字段名','表达式','值')

    $db = Db::name('user');       

    $sql = $db

    ->where('id','in','1,2,3')

    ->whereOr('username','eq','morankin')

    ->whereOr('num','lt','10')

    ->where('email','morankin@qq.com')

    ->buildSql(); 

    以上其实就是定义了一个筛选条件但是老师给的这个其实筛选条件没有什么必要 and 在我这里认为比or是 小一级的(后面会解释) , 条件满足id  为1,2,3,和email 为Morankin@qq.com  或者满足username 为morankin的  再或者 满足 num 小于10的  

    我任务这样其实我们就有了3个条件

    一个为(id and email )一个为username 一个为num

    其实怎么理解都可以,我这个我比较好理解罢了  但是这样的筛选条件其实没有必要,也可以说无意义的 毕竟是给大家练习的

    不区分大小写

    EQ   =

    NEQ  <>

    LT   <

    ELT <=

    GT  >

    EGT >=

    BETWEEM   BETWEEN * AND *

    NOTBETWEEN NOTBETWEEN * AND *

    IN    IN (*,*)

    NOTIN   NOT IN (*,*)


    查看全部
    1 采集 收起 来源:条件构造器

    2019-07-09

  • # delete 返回影响的行数 对数据库进行删除 如果想要删除的为主键 可以不需要加where  直接在delete(添加主键id值)

    DB::name(user) ->where(['id'=>1])->delete();

    DB::name(user)->delete(1);


    查看全部
  • update() 返回影响的行数 可以影响一个数组

    setField() 返回影响的行数 只能影响一个字段 

    setInc() 返回影响的行数 每次递增  默认递增值为1

    setDec() 返回影响的行数 每次递减  默认递增值为1


    查看全部
  • value 返回一条记录 返回的结果并且是字条记录的某个字段

     如果结果不存在返回 NULL

    Db::table('lx1_user')->where(['id'=>'2'])->value('username');


    查看全部
  •  find 返回一条记录 返回的结果是一个一维数组  而其中的where 是为了更准确的查找到所需要的记录 就是可以添加一个字段名 比如你想要id为1的记录或者是username为xxx的 

    ->where(['字段名'=>'字段名的数据'])

    Db::table('lx1_user')->where(['id'=>'10']) -> find();


    查看全部
  • 源生方法的数据插入数据表

     Db::execute("insert into lx1_user set   username=?,password=?,email=?",[ 

    'morankin',md5('123'),'morankin@qq.com'

    ]);

    ?是给数据类名一个位置变量

    后面添加数据也是按照前面 ? 的先后排列的  

    数组第一个单元替换前面查询语句的第一个问号,第二个单元替换第二个问号,以此类推


    查看全部
  • 全局添加更新时间需要在表中新建create_time和update_time字段,配置文件中设置“auto_timestamp"=>true,一般不开启这个功能,否则表中不存在该字段时会报错,真正删除需要把destroy方法或delete方法的第二个参数设置为true

    use think\Model;
    use traits\model\SoftDelete;
    class User extends Model{    
    use SoftDelete;使用软删除    
    protected $autoWriteTimestamp = true;//开启自动更新时间    
    protected $createTime = false;//设置为false代表不使用创建时间    
    protected $updateTime = "update_at";//设置自定义更新时间的字段    
    protected $deleteTime = "delete_at";//设置自定义的软删除字段}


    https://img1.sycdn.imooc.com//5cb04a91000145e513860761.jpg

    https://img1.sycdn.imooc.com//5cb04ae90001063a13880759.jpg

    https://img1.sycdn.imooc.com//5cb04b1600019beb13910758.jpg

    查看全部
  • set+字段名+Attribute

    https://img1.sycdn.imooc.com//5caffb130001594f13920759.jpg

    https://img1.sycdn.imooc.com//5caffaee000101a813980820.jpg

    auto (新增及更新的时候自动完成的属性数组)

    insert(仅新增的时候自动完成的属性数组)

    update(仅更新的时候自动完成的属性数组)

    查看全部
  • 可利用toArray获取改后数据
    可利用getData获取原始数据

    https://img1.sycdn.imooc.com//5caff68c00014b6513980761.jpghttps://img1.sycdn.imooc.com//5caff6cf000141e213980769.jpg

    查看全部
    1 采集 收起 来源:模型获取器

    2019-04-12

  • count     User::count();   获取数据总条数     

     max       User::max('字段名')   获取指定字段值的最大值

     sum       User::sum('字段名')   获取指定字段值的总和

     avg       User::avg('字段名')   获取指定字段值的平均值 

    min       User::min('字段名') 获取指定字段值的最小值 

    都可以和where条件合作

    查看全部
    1 采集 收起 来源:模型聚合操作

    2019-04-12

  • 常用链式操作   

    原理:Db类的链式方法返回Db对象,可以继续使用Db对象的这些方法对查询数据进行一些条件构造以及范围的选择和排序等等;


    $res=$db

    ->where('id','>',5) 条件ID>5

    ->field('username','id') 只搜索username和id两个字段

    ->order('id DESC') order排序 id DESC   id倒序

    ->limit(3,7) limit截取  3,7   从3开始截取7个

    ->page(3,5) page(m,n)多用于分页//limit分页limit((m-1)*n,n)== m:当前页数,n:每页多少条数据

    ->group('`group`') //group是关键字,这里用``进行转义

    ->select(); select( );  搜索

    var_dump($res);


    注意:order对group是不起作用的;就是在执行的group进行分组的时候,并不是在你order排序的基础上进行的;

    group('字段'),他会根据字段的值为分类标准进行分类,比如字段值为1的单独查出来,字段值为1的单独查出来;


    查看全部
    1 采集 收起 来源:链式操作

    2019-04-10

  • 软删除引入

    traits\model\SoftDelete;

    use SoftDelete;

    查看全部
  • 一般更新不推荐使用 update 静态方法和 saveAll 推荐使用 where+update 或者 save+(where条件 or 闭包函数)

    查看全部

举报

0/150
提交
取消
课程须知
1、有一定的php基础。 2、对ThinkPHP5 有一定的了解。 3、没有接触过tp5 的学生可以先看下我之前录制的 <快速入门 ThinkPHP5 基础篇>
老师告诉你能学到什么?
1、ThinkPHP5 的数据库操作类 2、ThinkPHP5 的数据模型 3、使用数据模型快速对数据库进行增删改查的操作 4、ThinkPHP5 的自动完成操作 5、模型的自动时间戳和软删除

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!