2014-11-17 17 views
7

Używam mssql2008 z laravel 5.0 i za każdym razem, gdy pobierze dane z DB wydaje się, że wszystko zostało zwrócone jako ciąg znaków bez względu na to, jaki format mam przechowywany w bazie danych.laravel elokwentne liczby całkowite zwrócone jako ciągi w 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" 
} 

Wiem, że możemy użyć wymowne mutatorów formatować pola oddzielnie, ale to nie jest sposób na to, jak istnieje wiele pól całkowitymi, a ja nie chcę utworzyć funkcję dla każdego pola.

to nie jest problem z laravel Odpowiedź :: json Mam rzucił tablicy przy użyciu var_dump i wydaje się wszystkie pola zostały zwrócone jako ciągi.

Miałem ten problem wcześniej, ale to było z mysql i okazało się, że to był problem z sterownikami mysql do zainstalowania php5_mysqlnd.

Używam Ubuntu 14.04.

+0

Dziękujemy za sztuczkę php5-mysqlnd! Wystąpił ten sam problem, również Ubuntu 14.04 – JuCachalot

Odpowiedz

7

Używam MySQL i także w niektórych przypadkach znajduję ten sam problem. Nie używaj mutatora, zamiast niego użyj 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

jak obsłużyć tabelę przestawną (z relacji)? –