Красноречивые целые числа laravel возвращаются в виде строк в mssql

Я запускаю mssql2008 с laravel 5.0, и каждый раз, когда я извлекаю данные из БД, кажется, что все возвращается в виде строки, независимо от того, в каком формате я храню ее в базе данных.

{
    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.

я использую убунту 14.04.


person muhamin    schedule 17.11.2014    source источник
comment
Спасибо за трюк с php5-mysqlnd! У меня была такая же проблема, также Ubuntu 14.04.   -  person JuCachalot    schedule 25.11.2015


Ответы (1)


Я использую MySQL и в некоторых случаях обнаружил ту же проблему. Не используйте мутатор, вместо этого используйте приведение атрибутов.

protected $casts = [
    'id' => 'integer',
    'owner_id' => 'integer',
    'is_local' => 'integer',
    'vessel_type_id' => 'integer',
    'registration_number' => 'integer',
    'gross_register_tonnage' => 'integer',
    'year_built' => 'integer',
];
person PaePae    schedule 03.09.2015
comment
как составить сводную таблицу (из отношения)? - person Hata Bomba; 25.07.2016