在 scout:import Laravel 之后数字被格式化为字符串

Posted

技术标签:

【中文标题】在 scout:import Laravel 之后数字被格式化为字符串【英文标题】:Numbers are formatted as string after scout:import Laravel 【发布时间】:2019-07-04 07:03:06 【问题描述】:

当我在本地环境中开发网站时,我不得不使用 php artisan scout:import 命令,并且一切正常。但是,一旦我部署了我的应用程序并使用 ssh 使用相同的命令,我就导入了我的模型,但将 int 属性呈现为字符串,f.e. 1 被格式化为“1”。因此,我无法使用 numeric_filters。我在这两种情况下都使用 mysql 数据库。

【问题讨论】:

【参考方案1】:

默认情况下,数字在 JSON 响应中呈现为字符串。 您可以使用此 https://***.com/questions/31527050/laravel-5-controller-sending-json-integer-as-string 中的说明,也可以在模型中使用 casts 属性,这样每次模型被序列化时,它都会按照指定的方式转换相应的列。

例如在模型中,您可以这样定义:protected $casts = [ 'something' => 'float' ];

【讨论】:

谢谢,伙计,真的很难弄清楚。对我帮助很大。

以上是关于在 scout:import Laravel 之后数字被格式化为字符串的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4:在验证之前和之后验证开始和结束日期

Laravel - 在简单的数据库查询内存泄漏/“允许的内存大小为 .. 字节耗尽”之后 [重复]

在 App::abort(403) 之后抑制 Laravel 日志中的堆栈跟踪转储

@include 之后刀片未在刀片中显示内容 - Laravel 4.2

在 Laravel 中进行复杂查询的 orderBy 之后的 GroupBy

Laravel where 子句在多个 orWhere 子句之后没有返回数据?