2013-09-03 6 views
6

Ich habe vorhandene Daten in einer MySQL-Datenbank, deren Spalten camelCased sind. Ich kann sie nicht in einen Schlangenfall verwandeln.Kann ich camelCase mit Laravel 4 eloquent verwenden?

Zum Beispiel: wenn ich versuche, "jobRole" zu verwenden, bekomme ich "job_role". Ich möchte, dass es "JobRole" ist.

Gibt es eine Einstellung in Laravel, um dies zu unterstützen? Ich habe über Mutatoren gelesen, verstehe sie aber nicht. Ist das die Lösung? Wenn ja, wie mache ich das?

Antwort

18

Entdeckt können Sie dies tun.

Im Modell neu zu definieren "snakeAttributes" auf "false" wie folgt aus:

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

Dies funktioniert immer noch ab 4.1.18. – Anaxamaxan

+0

Vielen Dank, dass Accessors & Mutators mit der camel case Datenbankspalte arbeiten mussten – malhal

1

Sie können nun. Ich habe gerade ein Paket fertiggestellt, mit dem Sie bei Bedarf in camelCase komplett mit Modellattributen arbeiten können.

https://github.com/kirkbushell/eloquence

Installieren Sie das Paket wie pro normal:

composer require kirkbushell/eloquence ~1.0 

Dann Setup Ihren Service-Provider:

'KirkBushell\Eloquence\EloquenceServiceProvider', 

Dann alles, was Sie tun müssen, ist entweder Setup Eloquent auf die Punkt neue Klasse als Teil Ihrer Aliase in application/config/app.php:

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

Das stellt sicher, dass die Bibliothek im Grunde ein Drop-in-Ersatz ist. Wenn Sie wollen einfach nur mit einigen Modellen testen, können Sie einfach erweitern die Eloquence Basismodell Klasse:

class MyModel extends \KirkBushell\Eloquence\Database\Model 

ich diese Klasse gebaut vor allem, weil ich krank war snake_case in unseren JavaScript-Anwendungen zu sehen, sondern auch in unserer server- Seitencode. Dies sorgte dafür, dass überall (Front-End und Back-End) mit Camel Casing zu tun hatte.