今天在用tp5写代码的时候,遇到一个问题,代码如下:
$id=$_GET['id'];
$list = Db::view('records','id,name,remark,createtime')
->view('section',['name'=>'secname','id'=>'sid'],'records.sectionid=section.id')
->where('records.id',$id)
->select();
在以前使用原生代码查询的时候,查询记录为一条时,在视图页面输出并不用循环输出。
所以我在页面输出该条记录时并没有使用volist进行循环输出,系统报错。
后来通过查找资料,明白了select()和find()的区别,才找到错误原因。
find()与 select() 的不同之处在于,find() 返回的是一个一维数组,可以在模板里直接输出数组单元的值而无需使用 volist 等标签循环输出;且find() 查询出来的始终只有一条数据,即系统自动加上了 LIMIT 1 限制。
直接像这样输出就可以了。
{$list['username']}
而select()不管查询出来的记录是一条还是多条,在页面输出时必须使用volist进行循环输出。
以上,又是今天遇到的一个坑。