2013-09-03 37 views
6

Varolan sütunları camelCased olan bir mysql db dosyasında var. Onları sopayla değiştiremem.CamelCase'i Laravel 4 eloquent ile kullanabilir miyim?

Örneğin: "jobRole" kullanmaya çalıştığımda "job_role" alıyorum. Ben "jobRole" olmasını istiyorum.

Bunu desteklemek için laravelde bir ayar var mı? Mutators hakkında okudum ama onları anlamıyorum. Çözüm bu mu? Eğer öyleyse, bunu nasıl yaparım?

cevap

18

Bunu yapabileceğinizi keşfettiniz. modelde

böyle "yanlış" den "snakeAttributes" yeniden tanımlama:

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

Bu, hala 4.1.18 itibariyle çalışır. – Anaxamaxan

+0

Bu Access ve Mutators deve durumda veritabanı sütunu ile çalışmak için gerekliydi. – malhal

1

Artık şunları yapabilirsiniz. Gerekirse, model nitelikleriyle tamamen camelCase içinde çalışmanıza izin veren bir paketi tamamladım.

https://github.com/kirkbushell/eloquence

normal başına paketi yükleyin:

composer require kirkbushell/eloquence ~1.0 

Ardından kurulum servis sağlayıcıları:

'KirkBushell\Eloquence\EloquenceServiceProvider', 

Sonra tüm yapmanız gereken ya kurulum Etkili işaret etmektir application/config/app.php'deki diğer adlarınızın bir parçası olarak yeni sınıf:

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

Bu, kütüphane temel olarak bir açılan yerine olmasını sağlar. Eğer sadece bazı modellerde test etmek isterseniz, sadece Eloquence baz modeli sınıfını genişletir edebilirsiniz:

class MyModel extends \KirkBushell\Eloquence\Database\Model 

ben bizim javascript uygulamalarda snake_case görme hasta başlıca nedeni bu sınıfı inşa, ama aynı zamanda bizim Sunucu- yan kod Bu, her tarafın (ön uç ve arka uç) deve muhafazası ile uğraşmasını sağladı.