ThinkPHP 转换数据库查询出的数据到对应类型
默认情况下,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.
本来,这样已经搞定了,但发现Model.class.php的_parseType方法里有个低级bug,看图:
转:https://www.pocketdigi.com/20160411/1469.html?utm_source=tuicool&utm_medium=referral
Leave a Comment