2014-11-17 24 views
7

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

{ 
    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" 
} 

我知道我们可以用雄辩的变异符分开的字段的格式,但是这是没有办法做到这一点,因为有多个整数字段,我不想创造每一个领域的功能。

这不是laravel的问题Response :: json我已经倾倒了使用var_dump的数组,并且似乎所有字段都以字符串形式返回。

我以前有过这个问题,但那是与MySQL和事实证明这是一个问题,MySQL驱动程序必须安装php5_mysqlnd。

我使用的是Ubuntu 14.04。

+0

感谢您使用php5-mysqlnd技巧!我遇到同样的问题,还有Ubuntu 14.04 – JuCachalot

回答

7

我使用MySQL并在某些情况下也发现相同的问题。请勿使用增变器,而应使用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', 
]; 
+0

如何投射数据透视表(来自关系)? –