默认情况下,thinkphp查询出的所有字段值类型都是string,如果是开发web,当然没问题,但开发接口,就很麻烦了,总不能让客户端去转类型。
ThinkPHP的Model.class.php时,提供了_parseType方法,可以在查询完以后,做类型转换,但框架没有这么干,需要我们手工调一下。
写一个Model基类:
BaseModel.class.php,因为我用到关联查询,所以继承自RelationModel
use Think\Model;use Think\Model\RelationModel;class BaseModel extends RelationModel{ //在查询后,转换数据类型 protected function _after_select(&$resultSet, $options) { parent::_after_select($resultSet,$options); foreach ($resultSet as &$result) { $this->_after_find($result, $options); } } protected function _after_find(&$result, $options) { parent::_after_find($result,$options); foreach ($result as $field => $value) { $this->_parseType($result, $field); } }}
所有的Model类继承自BaseModel.
立即学习“PHP免费学习笔记(深入)”;
本来,这样已经搞定了,但发现Model.class.php的_parseType方法里有个低级bug,看图:
© 2016, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接!应用开发笔记
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号