#数据库操作Db
>[info]从框架中学习 操作分为:
>---
>增加 create
>更新 update
>删除 delete
>读取 read
>其它
[数据集概念](http://www.kancloud.cn/manual/thinkphp5/150164)
如数据表操作比较直观,建议直接使用db,不必使用model
~~~
db() 与 \think\Db::instance() 相同
~~~
* 获取user表所有数据
`db('user')->select()`
* 时间段查询[详见](http://www.kancloud.cn/manual/thinkphp5/165789)
~~~
db('user')->whereTime()
~~~
#模型model
应用实例详见
* 模型应用于需要做特殊处理表或者多表视图, 直观数据表读、写,直接使用db会更直观,方便维护
## 模型model使用补充
需要特别注意,tp5 model select,find等返回为model数组对象,而非像Db返回是数据数组,解决这个问题可以通过下面函数解决
~~~
/*
* 将model查询对像转换为数组数据
*
*/
function modelo2array($object){
$data = [];
foreach($object as $key=>$rowO){
$data[$key] = $rowO->toArray();
}
return $data;
}
~~~
return dump(modelo2array(model('name')->select());
说明: model内置:toJson(), toArray(), 只对find(),get(1)单条记录有效。
使用模型,适合于应用字段需要进行转换,或者有特别计算要求表。
当然,调用 model()->column("*");也可返回数据,但缺乏了model处理字段转换等功能。
`
#验证validate
* 可定义为独立文件,对于数据表数据验证,更偏向于类似于3.X方式,定义在model中。
*