为什么整数数据在postman中以字符串形式返回

时间:2018-03-09 14:48:39

标签: php laravel api laravel-5 postman

我使用邮递员来测试我的API并得到以下回复

import ./path/to/other.nix

在我的数据库中 drink_type place_id drink_amount device_id 都是整数,但我收到它们为字符串,它们有什么问题?

这是我用于返回此数据的代码

{
 "Message": "Dinks loaded successfully.",
 "Status": true,
 "InnerData": [
     {
         "id": 1,
         "place_id": "25",
         "drink_type": "1",
         "drink_amount": "2",
         "device_id": "1",
         "created_at": "2018-03-09 14:22:27",
         "updated_at": "2018-03-09 14:22:27"
     }
 ]
}

2 个答案:

答案 0 :(得分:2)

https://laravel.com/docs/5.6/eloquent-mutators#attribute-casting

将其添加到模型中以指定数据类型:

 protected $casts = [
     'drink_type' => 'int',
     'place_id' => 'int'
 ];

答案 1 :(得分:1)

  

模型上的$ casts属性提供了一种方便的方法   将属性转换为常见数据类型。 $ casts属性应该   是一个数组,其中键是正在强制转换的属性的名称   值是您希望将列强制转换为的类型。支持   cast类型有:integer,real,float,double,string,boolean,object,   数组,集合,日期,日期时间和时间戳。

这是来自官方文档,尝试这样的事情:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class DrinksOrdered extends Model
{
    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'drink_type' => 'int',
        'place_id' => 'int',
    ];
}