Laravel Schemaless Öznitelik Paketi

Spatie'nin Laravel Schemaless Attributes Laravel paketi ile Eloquent ilişkisel modellere şema nitelikleri ekleyebilirsiniz. Paketin readme bu paketi mükemmel bir şekilde toplar:

Eloquent'de bulunan NoSQL'in ruhundan biraz daha iyi olabilir miydin? Bu paket sadece bunu yapar. Bir modele uygulandığında, rasgele değerleri tek bir JSON sütununda depolamanıza izin veren bir özellik sağlar.

Bu paket json sütunlarını destekleyen bir veritabanı gerektirdiğinden, MySQL 5.7 veya üstü gibi bir veritabanı kullanmanız gerekecektir.

Nitelikler belirlediğiniz şekilde şema niteliğini alır ve ayarlarsınız:

$yourModel->extra_attributes->name = 'value';
$yourModel->extra_attributes->name; // Returns 'value'

Şema niteliğini kaydetmek için, modeli kaydedin:

// Persists both normal and schemaless attributes
$yourModel->save();

Bu paketi incelemeye başladığımda sahip olduğum bir soru, modelin ek özelliklerini sorgulamaktı:

$yourModel->withExtraAttributes([
'name' => 'value',
'name2' => 'value2
])->get();

Bu pakete devam etmek için onu besteci ile kurun:

composer require spatie/laravel-schemaless-attributes

Ardından, JSON özelliklerini istediğiniz model taşıma işlemine aşağıdakileri eklemeniz gerekir:

Schema::table('your_models', function (Blueprint $table) {
$table->schemalessAttributes('extra_attributes');
});

Şema verileri için bir model hazırlamak için ihtiyaç duyduğunuz ek adımların belgelerini kontrol edin. Şema verileri birden çok modelde kullanmayı planlıyorsanız, belgeler ek öznitelikleri erişimi ve kapsamı için nasıl bir özellik oluşturulacağını gösterir.

Bu paket, ilişkisel veritabanında, JSON verileriyle çalışma konusunda kolaylık sağlayan yöntemler ekleyerek, erişim ve kalıcı şema verileri için mükemmel bir yol sağlar. Tam dokümantasyon ve kaynak kodu için GitHub deposuna bakın.

Bir önceki yazımız olan Ubuntu 16.04 Web Sunucunuzu izlemek için Alertmanager Ve Blackbox Ihracatçı Nasıl Kullanılır başlıklı makalemizi de okumanızı öneririz.

About This Author

Comments are closed

%d blogcu bunu beğendi: