2014-11-17 13 views
7

sto eseguendo mssql2008 con laravel 5.0 e ogni volta che richiamo i dati dal DB sembra che tutto sia stato restituito come stringa indipendentemente dal formato in cui lo ho memorizzato nel database.laravel numeri interi eloquenti restituiti come stringhe in 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" 
} 

So che possiamo usare mutatori eloquenti per formattare i campi separatamente, ma questo è un modo per fare questo in quanto vi sono molteplici campi di numeri interi e non voglio creare una funzione per ciascuno e per ogni campo.

questo non è un problema con laravel Response :: json ho scaricato l'array usando var_dump e sembra che tutti i campi siano stati restituiti come stringhe.

ho avuto questo problema prima ma quello era con mysql e si è scoperto che era un problema con i driver mysql dovevano installare php5_mysqlnd.

sto usando Ubuntu 14.04.

+0

Grazie per il trucco php5-mysqlnd! Stavo vivendo lo stesso problema, anche Ubuntu 14.04 – JuCachalot

risposta

7

Io uso MySQL e ho riscontrato lo stesso problema in alcuni casi. Non utilizzare il mutatore, utilizzare invece 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

come lanciare la tabella pivot (dalla relazione)? –

Problemi correlati