设置: - 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字符串中。
我只是不明白。
答案 0 :(得分:1)
试试attribute casting。来自文档:
属性转换
模型上的
$casts
属性提供了将属性转换为常用数据类型的便捷方法。$casts
属性应该是一个数组,其中键是要转换的属性的名称,值是您希望将列转换为的类型。受支持的演员类型包括:integer
,real
,float
,double
,string
,boolean
,object
,{{ 1}},array
,collection
,date
和datetime
。例如,让我们将
timestamp
属性转换为{is_admin
属性,该属性作为integer
(0
或1
)存储在我们的数据库中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