【问题标题】:laravel eloquent integers returned as strings in mssqllaravel 雄辩的整数在 mssql 中以字符串形式返回
【发布时间】:2014-11-17 14:29:19
【问题描述】:

我正在使用 laravel 5.0 运行 mssql2008,每次我从数据库中检索数据时 似乎所有内容都以字符串形式返回,无论我将它存储在数据库中的哪种格式。

{
    id: "1",
    name: "This is crazy",
    owner_id: null,
    is_local: "0",
    vessel_type_id: "3",
    registration_number: "34535",
    gross_register_tonnage: "34",
    year_built: "3453",
    status: "active",
    deleted_at: null,
    created_at: "Nov 5 2014 03:25:38:577PM",
    updated_at: "Nov 17 2014 09:06:40:000AM"
}

我知道我们可以使用 eloquent mutators 来分别格式化字段,但这是没有办法的,因为有多个整数字段,我不想为每个字段创建一个函数。

这不是 laravel Response::json 的问题,我已经使用 var_dump 转储了数组,似乎所有字段都作为字符串返回。

我以前也遇到过这个问题,但那是 mysql 的问题,结果是 mysql 驱动程序的问题,必须安装 php5_mysqlnd。

我使用的是 Ubuntu 14.04。

【问题讨论】:

  • 感谢您的 php5-mysqlnd 技巧!我也遇到了同样的问题,Ubuntu 14.04

标签: php sql-server eloquent laravel-5


【解决方案1】:

我使用 MySQL 并且在某些情况下也发现了同样的问题。不要使用 mutator,而是使用 attribute casting

protected $casts = [
    'id' => 'integer',
    'owner_id' => 'integer',
    'is_local' => 'integer',
    'vessel_type_id' => 'integer',
    'registration_number' => 'integer',
    'gross_register_tonnage' => 'integer',
    'year_built' => 'integer',
];

【讨论】:

  • 如何转换数据透视表(从关系)?
猜你喜欢
  • 2020-02-18
  • 2018-06-19
  • 2017-08-22
  • 2021-06-04
  • 2019-10-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
相关资源
最近更新 更多