Activerecord Yii PHP-JSON编码活动记录将int和boolean转换为字符串
在我的数据库中,我有一个具有以下结构的friends表:Activerecord Yii PHP-JSON编码活动记录将int和boolean转换为字符串,activerecord,yii,Activerecord,Yii,在我的数据库中,我有一个具有以下结构的friends表: id(int) 用户_a(int) 用户_b(int) 已接受(tinyint) 我有一个活动记录查询,如下所示: $friends = Friend::model()->findAll('user_a=:userId AND accepted IS true', array(':userId' => $this->user->id)); $this->sendResponse(200, CJSON::e
- id(int)
- 用户_a(int)
- 用户_b(int)
- 已接受(tinyint)
$friends = Friend::model()->findAll('user_a=:userId AND accepted IS true', array(':userId' => $this->user->id));
$this->sendResponse(200, CJSON::encode($friends), 'application/json');
我得到了以下API响应:
[{“id”:“2”,“用户a”:“14”,“用户b”:“3”,“接受”:“1”}]
CJSON::encode似乎将所有内容都转换为字符串,这是为什么?有没有一种方法可以将整数作为数字返回,将tinyint作为布尔值返回
谢谢
EricCJSON::encode()不会将变量转换为字符串,但findAll()会。如果您转储$friends模型属性,您将看到它。您可以这样做来处理它:
protected function afterFind()
{
$this->id = (int) $this->id;
$this->user_a = (int) $this->user_a;
// etc
parent::afterFind();
}