Özel modülde nasıl tablo oluştururum


13

Drupal 7'de hook_schema()bir tablo oluşturmak için .install dosyasında kullandık. Drupal 8'de de bunu yapabileceğinize inanıyorum, ancak şemanızla .yml dosyaları oluşturmanız gerektiği izlenimi altındaydım.

Drupal 8'de tablo oluşturmanın yöntemi nedir?


3
Hayır, haklısın. hook_schemahala Drupal 8'de içerik varlıkları veya alanları tarafından açıklanmayan özel tablolar oluşturmanın yoludur . Özel tablonuz "içerik" olarak değerlendireceğiniz bir şeyse, varlıkları kullanırdım, ancak daha hızlı olması gerekiyorsa ve satırların sınırlı olması ve ön uçta herhangi bir önbellekleme yapmıyorsanız, özel bir tablo iyi. Ayrıca, bu tablonun "yapılandırma" olup olmadığını da dikkate almanız gerekir; bu durumda bir yapılandırma varlığı veya nesnesi gitmenin yoludur.
mradcliffe

Yanıtlar:


10

hook_schema()hala modülden kullanılan özel veritabanı tabloları oluşturmak için Drupal 8 modüllerinden kullanılmaktadır. Her ne kadar Hatta Kullanıcı ve Düğüm modülleri, bunu uygulamaya user_schema()ve node_schema()farklı bir şekilde oluşturulur, ilgili kişiler için şemayı tanımlamaz.

Yapılandırma şema özel veritabanı masaları sunuyoruz modül kullanır oluşturmak için kullanılan, ancak yapılandırma dosyalarının yapısını açıklar değildir. Bağladığım belgelerde bulunan PDF dosyası, bir yapılandırma dosyası ile şeması arasındaki ilişkiyi açıkça ortaya koyuyor.

ekran görüntüsü

İçerik varlıkları kullanmaz hook_schema(); Drupal, onlar için content varlık sınıfının tanımladığı temel alanlara dayanarak veritabanı tablosunu oluşturur.

Hangi yöntemin kullanılacağı modülün neyi tanımladığına bağlıdır. Bir içerik varlığı, bir yapılandırma varlığı tanımlamak veya sadece özel bir tablo kullanmak modüle bağlıdır. Bir modül hepsini bile kullanabilir.


9

Gerçekten isterseniz, kendi tablolarınızı oluşturmak için kanca kurulumunu kullanabilirsiniz, ancak Drupal'ın diğer birçok daha fazla çözümü vardır. Ancak kendinizinkini almak istiyorsanız, örnek modülünde dbtng_example adlı bir örnek modül vardır: https://www.drupal.org/project/examples , özel veritabanı girişlerinizi eklemek ve kaldırmak için yönlendirmeyle birlikte.

Bunu yüklemenizi ve denemenizi tavsiye ederim, o zaman bunu Drupal 8'de kendi veritabanı tablonuzu oluşturmak için bir temel olarak kullanabilirsiniz.

Dikkate alınması gereken diğer bir yaklaşım, bir yapılandırma varlığı veya bir içerik varlığı oluşturmaktır.

Drupal komut satırı aracını kullanırsanız, bu "drupal generat: entity: config" ve "drupal generat: entity: content" oluşturmak için bir komut bile vardır.

Ayrıca örnekler modülünde config_entity_example ve content_entity_example vardır.

Gönderen https://www.previousnext.com.au/blog/understanding-drupal-8s-config-entities : "içerik ve yapılandırma varlık arasındaki temel fark (şu anda) ise depolandıkları nasıl olup yapılandırma varlıklar fieldable değildir ".

Sitenizde veri depolamak için yerleri kolayca döndürmenize izin veren config_pages modülü gibi daha başka çözümler de var: https://www.drupal.org/project/config_pages

Son zamanlarda bunları bir kontrolör ve rota oluşturarak tek seferlik açılış sayfalarında kullandık. Kolayca yeni alanlar ekleyebileceğiniz ve resimler ve varlık referansları gibi veri türlerini kolayca kullanabileceğiniz, alan biçimlendiricileri ayarlayabileceğiniz ve config_pages varlık görünümü oluşturucusunu kullanarak biçimlendirilmiş verileri yükleyebileceğiniz için bu, özel bir tabloya göre büyük bir avantaja sahiptir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.