我使用邮递员来测试我的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"
}
]
}
答案 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',
];
}