2013-09-03 23 views
6

Ho dati esistenti in un mysql db le cui colonne sono camelCased. Non posso cambiarli in caso di serpente.Posso usare camelCase con Laravel 4 eloquente?

Ad esempio: quando provo a utilizzare "jobRole", ottengo "job_role". Voglio che sia "jobRole".

Esiste un'impostazione in laravel per supportare questo? Ho letto dei mutatori ma non li capisco. È questa la soluzione? Se sì, come faccio a fare questo?

risposta

18

Scoperto è possibile farlo.

Nel modello, ridefinire "snakeAttributes" a "false" come questo:

class YourModel extends Eloquent{ 
    public static $snakeAttributes = false; 
} 
+0

Questo funziona ancora come 4.1.18. – Anaxamaxan

+0

Grazie per fare in modo che Accessors & Mutator funzionino con la colonna del database del caso cammello – malhal

1

È ora possibile. Ho appena completato un pacchetto che consente di lavorare con gli attributi del modello completamente in camelCase, se necessario.

https://github.com/kirkbushell/eloquence

Installare il pacchetto come al solito:

composer require kirkbushell/eloquence ~1.0 

quindi l'installazione vostri fornitori di servizi:

'KirkBushell\Eloquence\EloquenceServiceProvider', 

Poi tutto quello che dovete fare è né configurazione Eloquente per puntare al nuova classe come parte dei tuoi alias in application/config/app.php:

'Eloquent' => 'KirkBushell\Eloquence\Database\Model', 

Ciò garantisce che la libreria sia fondamentalmente una sostituzione drop-in. Se si desidera verificare solo con alcuni modelli, si può semplicemente estende la classe modello base Eloquenza:

class MyModel extends \KirkBushell\Eloquence\Database\Model 

Ho costruito questa classe soprattutto perché ero stufo di vedere snake_case nelle nostre applicazioni JavaScript, ma anche nel nostro server- codice laterale. Ciò ha garantito che ovunque (front-end e back-end) si occupasse di carcasse di cammelli.