在模型中:
public function getMeasurements($user_id) {
$user_id = (int)$user_id;
$row = $this->fetchRow('user_id = ' . $user_id);
return $row->toArray();
}
回到控制器:
$array = $user->getMeasurements($user_id);
$this->_helper->json($array);
JSON回复:
{
"user_id":"1",
"height":"186.00",
"waist":"81.00",
"chest":"79.00",
"hips":"81.00",
"inseam":"85.00",
"weight":"76.00"
}
我的问题是这些字段中的每一个都作为整数存储在数据库表中,但在JSON响应中作为字符串返回。怎么了?
到目前为止,故障排除包括以下内容:
$this->_helper->json(array('integer'=>0, 'string'=>'0'));
这可以按预期工作。将行集转换为模型中的数组时是否丢失了类型?
答案 0 :(得分:0)
这不是json的错误,也不是zf中的对话 它是mysqli(或另一个mysql扩展名)
查看示例:
// sql CREATE TABLE `foo` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `type` enum('n','y') NOT NULL DEFAULT 'n', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
<?
$c = new mysqli('localhost', 'azat', 'Z2UXWq2EyL7Or7m');
$c->select_db('test');
$info = $c->query('select * from foo');
var_dump($info->fetch_object());
// output object(stdClass)#5 (2) { ["id"]=> string(1) "2" ["type"]=> string(1) "y" }