我使用的是Laravel3 Response::eloquent
。
结果是JSON格式:{"id":"1"}
。但是我希望结果如下:{"id":1}
id
作为数字,而不是字符串类型。
我使用apache而Content-Type
是application/json; charset=UTF-8
。
问题仅发生在生产系统上。在我的localhost上,结果为{"id":1}
。
Apache或Laravel3是否有相关设置?
答案 0 :(得分:2)
这很可能是由于PHP而导致使用错误的数据库驱动程序。从PHP 5.3开始mysqlnd
是默认的数据库驱动程序,支持返回本机数据类型。
确保您使用MySQL的mysqlnd
驱动程序。
答案 1 :(得分:1)
我同意@ user555。但它不是Laravel 3或Laravel 4问题,而是一个mysqlnd问题。
由于错误的mysql客户端库,您的提取表字段键入为字符串,然后json_encode()正在获取" string"作为" string"的输入和编码同样。
我在这里写了一篇关于我的经历的文章:
http://www.jmilan.net/posts/json-encode-data-type-errors-in-php 希望它有所帮助