tp5中遇到的坑

在脚本中写了一个方法:

    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',
];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值