JSON整数自动转换为除id之外的字符串[关闭]

Posted

技术标签:

【中文标题】JSON整数自动转换为除id之外的字符串[关闭]【英文标题】:JSON integer automatically to string except id [closed] 【发布时间】:2018-08-21 04:11:19 【问题描述】:

设置: - php - Vuejs/vueresource - Laravel

在本地一切正常,在 prod 中失败。

在本地,当我执行 ajax 请求时,我收到这样的项目:

"ad":"id":7,"active":1,"url":null,"publish_date":"2018-03-12", ... .. .....

在 prod 中,我收到这样的信息:

"ad":"id":7,"active":"1","url":null,"publish_date":"2018-03-12", ... .

不同之处在于本地的 active prop 它实际上是一个整数,而 prod 是一个字符串。

我只是不明白。

【问题讨论】:

我们也没有。您认为我们将如何帮助实现这一声明? 看看这里。我认为这会有所帮助:laracasts.com/discuss/channels/vue/… 【参考方案1】:

试试attribute casting。来自文档:

属性转换

模型上的$casts 属性提供了一种将属性转换为常见数据类型的便捷方法。 $casts 属性应该是一个数组,其中键是要转换的属性的名称,值是您希望将列转换为的类型。支持的强制转换类型为:integerrealfloatdoublestringbooleanobjectarraycollectiondate4、3和timestamp

例如,让我们将is_admin 属性作为integer01)存储在我们的数据库中,转换为boolean 值:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'is_admin' => 'boolean',
    ];

现在is_admin 属性在您访问它时将始终转换为boolean,即使基础值作为integer 存储在数据库中:

$user = App\User::find(1);

if ($user->is_admin) 
    //

因此,您需要定义 Laravel 转换所需属性的正确方式。为此,只需覆盖模型类中的 $casts 数组并将您的属性(键)指定为正确的类型(值)。

/path/to/your/project/app/SomeModel.php

class SomeModel extends Model

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'active' => 'integer',
    ];

    // The rest of the model code.


【讨论】:

以上是关于JSON整数自动转换为除id之外的字符串[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

sparkdataframe转换成字节流

需要为除 word1 或 word2 之外的任何单词找到正则表达式

JavaScriptSerializer 不会将 Json 字符串转换为对象? [关闭]

将xml转换为json而不转换字符串/整数?

unity 3d-大分数数字变成指数 C# [关闭]

电脑有时会自动关闭所有的窗口是啥原因?