除了id之外,JSON整数自动生成字符串

时间:2018-03-13 01:52:52

标签: javascript php json laravel vue.js

设置: - PHP - Vuejs / vueresource - Laravel

在当地,一切工作都很顺利,生产失败。

在loca,当我做一个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", ... .

区别在于它本地的活动道具它真的是一个整数,在prod字符串中。

我只是不明白。

1 个答案:

答案 0 :(得分:1)

试试attribute casting。来自文档:

  

属性转换

     

模型上的$casts属性提供了将属性转换为常用数据类型的便捷方法。 $casts属性应该是一个数组,其中键是要转换的属性的名称,值是您希望将列转换为的类型。受支持的演员类型包括:integerrealfloatdoublestringbooleanobject,{{ 1}},arraycollectiondatedatetime

     

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

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

因此,您需要定义Laravel将转换所需属性的正确方法。要执行此操作,只需覆盖模型类中的$user = App\User::find(1); if ($user->is_admin) { // } 数组,并将属性(键)指定为正确的类型(值)。

/路径/到/你/项目/应用/ SomeModel.php

$casts