在脚本中写了一个方法:
public function getuser()
{
$con['is_black'] = 1;
$res = Db::table('user')
->where($con)
->select();
if($res->isEmpty()){
return array("code"=>"101","data"=>"数据集为空");
}
$result = $res->toArray();
foreach ($result as &$val) {
$val['register_time'] = date("Y-m-d",$val['register_time']);
}
$this->assign('user',$result);
return view("User/user");
}
但是在使用引用传值遍历的时候发现改变不了register_time的值,后查手册才发现自己在配置文件中将resultset_type配置为collection那么结果集返回时就会是数据集类而不是数组,所以必须使用toArray()方法转化成数组
以下为手册中的信息:
数据库的查询结果也就是数据集,默认的配置下,数据集的类型是一个二维数组,我们可以配置成数据集类,就可以支持对数据集更多的对象化操作,需要使用数据集类功能,可以配置数据库的resultset_type
参数如下:
return [
// 数据库类型
'type' => 'mysql',
// 数据库连接DSN配置
'dsn' => '',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'thinkphp',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '',
// 数据库连接端口
'hostport' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'think_',
// 数据集返回类型
'resultset_type' => 'collection',
];