php - Laravel 5 Controller 将 JSON 整数作为字符串发送

在我的开发服务器上,来自 Laravel 5 Controller 的 JSON 响应以正确的类型显示数据。

例如

imdb_rating: 7.6
imdb_votes: 6271

但在生产服务器上,JSON 响应以字符串形式发回。

imdb_rating: "7.60"
imdb_votes: "6271"

开发和生产都安装了相同版本的 PHP (5.6.11-1)。

关于可能导致这种行为的任何想法?

最佳答案

我刚刚遇到了同样的问题!对于那些正在寻找更合适的解决方案的人,您可能想查看 $casts Eloquent 模型的属性。

接受的解决方案会起作用,但它也会转换您可能不想转换的字段。我建议将此添加到您的 Eloquent 模型中:

protected $casts = [ 'imdb_rating' => 'float', 'imdb_votes' => 'integer' ];

这将直接转换模型对象中的值,因此您无需担心更新多个端点。我希望这对其他人有帮助!

关于php - Laravel 5 Controller 将 JSON 整数作为字符串发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31527050/

相关文章:

json - HTTPResponse 对象 -- JSON 对象必须是 str,而不是 'byte

json - Spring Boot Actuator 端点的 pretty-print JSON

php - json_encode 不使用 html 字符串作为值

python - 如果键可能不存在,则从 Python dict 读取

json - 如何自定义来自 spring @Valid 验证的默认错误消息?

python - 避免 KeyError 的默认字典键

javascript - 如何在 console.log 中打印 JSON 数据?

python - datetime.date(2014, 4, 25) 在 Django 中不是 J

python - 如何从一个文件中提取多个 JSON 对象?

iphone - 从 NSArray 创建一个 json 字符串