thinkphp5框架的查询可以解释一下这种查询的原理吗?

$videoLib = new VL();

$lists = $videoLib->alias('v')->field('v.*,c.videoCategoryName')->join('VideoLibCategory c','v.categoryId=c.id','LEFT')->where($map)->order('v.id desc')->limit($start,$limits)->select();

各位大神,有个问题请教一下,我接手了一个项目,但是项目里的查询用法是首先new一个模型类, 再用这个变量直接带条件去查询,表名都没有这些数据是怎么查出来的?图片说明

php

3个回答

$videoLib = new VL(); //没有看到这个的定义,应该是实例化这个VideoLib这个表的model

$lists = $videoLib->alias('v')->field('v.*,c.videoCategoryName')->join('VideoLibCategory c','v.categoryId=c.id','LEFT')->where($map)->order('v.id desc')->limit($start,$limits)->select();
//
->alias('v')这个是指vl设置VideoLib这个表的别名为 'v'  就是数据库连接查询中的定义别名
->field() 这部分主要是需要获取哪些字段,这个里面就是VideoLib表里面的全部字段和VideoLibCategory 这个表里面的videoCategoryName字段
->join('VideoLibCategory c','v.categoryId=c.id','LEFT')这部分就是左连接VideoLibCategory这张表,关联的字段是VideoLib表的categoryId字段和VideoLibCategory 的id字段,关联的方式使用左连接的方式
->where($map) 这个就是筛选的条件
->order('v.id desc')这个是排序,是按照VideoLib的id降序排序
->limit($start,$limits) 这个是查询的记录数,第一个是起始位置,第二个是查询的记录数
->select(); 这个就是查询出符合条件的记录了

这句大致相当于的sql是: select v.*,c.videoCategoryName from VideoLib as v left join VideoLibCategory as c on v.categoryId=c.id where $map 部分  order by v.id desc  limit $start,$limit

model table prefix

qq_39414785
chenbiao_o 可以稍微解释一下吗,我很懵
7 个月之前 回复
qq_39414785
chenbiao_o 什么意思啊?
7 个月之前 回复

你打印一下print_r($videoLib)这个对象就知道了 ,封装好的

qq_39414785
chenbiao_o 我看了手册 命名模型层和数据库表名是一样的就行了
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!