Saya mencoba untuk menambahkan banyak istilah (~ 200) ke kosakata, tetapi saya tidak dapat menemukan modul impor yang diperbarui untuk Drupal 8, dan sepertinya fungsi untuk melakukan ini di Drupal 7 tidak ada di Drupal 8. Jadi, adakah yang bisa mengarahkan saya ke arah yang benar untuk melakukan ini?
Saya berusaha melakukannya dengan entity_create
, seperti yang disarankan dalam komentar, dengan kode ini:
$term_create = entity_create('taxonomy_term', array('name' => 'test', 'vocabulary_name' => 'client'));
tapi saya mendapat kesalahan ini:
Drupal\Core\Entity\EntityStorageException: Missing bundle for entity type taxonomy_term in Drupal\Core\Entity\FieldableEntityStorageControllerBase->create() (line 65 of core/lib/Drupal/Core/Entity/FieldableEntityStorageControllerBase.php).
Ada ide?
taxonomy-terms
8
Samsquanch
sumber
sumber
entity_create()
$term_create = entity_create('taxonomy_term', array('name' => 'test', 'vocabulary_name' => 'client'));
tetapi saya mendapatkan kesalahanDrupal\Core\Entity\EntityStorageException: Missing bundle for entity type taxonomy_term in Drupal\Core\Entity\FieldableEntityStorageControllerBase->create() (line 65 of core/lib/Drupal/Core/Entity/FieldableEntityStorageControllerBase.php).
- Ada ide?vid
di tempatvocabulary_name
. Tampak seperti kolom masihvid
ditaxonomy_term_data
, tapi itu nama vocab bukan id sekarangJawaban:
Anda tahu bahwa Anda menginginkan sesuatu dari modul taksonomi jadi pertama-tama Anda perlu melihat
Drupal\taxonomy\Entity
- atau direktori yang sesuai - Anda akan menemukanTerm
kelas di sana. Sekarang lihat anotasi, katanya@ContentEntityType
dan di sana:Jadi, yang Anda inginkan adalah
karena
label
kunci entitas adalahname
danbundle
kunci entitas adalahvid
. Saya menambahkan->save()
panggilan dan saya kira Anda ingin menyimpannya juga.sumber
$term = \Drupal\taxonomy\Entity\Term::create(array( 'name' => 'whatever', 'vid' => 'tags', )); $term->save();
beri saya kesalahan fatal: Panggilan ke metode yang tidak ditentukan Drupal \ taxonomy \ Entity \ Term :: getTypePada saat ini Anda harus menambahkan istilah sedikit dengan cara lain (dibandingkan dengan jawaban ini ) Pertama-tama dalam file Anda mulai Anda harus menulis
Karena Term term terdaftar di Drupal \ taxonomy \ Entity. Dan Anda tidak perlu meneruskan parametr taxonomy_term ke
karena hanya satu parametr yang diperlukan (array dengan nilai) (di bawah ini kode yang tercantum untuk metode ini dalam modul taksonomi)
Jadi contoh terakhir adalah
sumber
Entity::save()
mengembalikan int. Entah konstantaSAVED_NEW
atauSAVED_UPDATED
tergantung pada operasi yang dilakukan. Namun, jika Anda menghapus->save()
dan menambahkan$term->save();
, Anda akan melihat bahwa$term
itu diperbarui dengan informasi yang disimpan ke database. Contoh yang sekarang dapat Anda lakukan$tid = $term->tid->value;
Jawaban lain menggunakan
entity_create()
, yang berfungsi, tetapi tidak begitu baik.sumber
Dengan
entityTypeManager()
:sumber
Anda mungkin ingin melihat bagaimana devel / devel_generate melakukan ini.
Dari devel_generate :
sumber
Sebelum membuat istilah, lebih baik memeriksa apakah itu ada, berikut kodenya:
Sumber: https://www.btmash.com/article/2016-04-26/saving-and-retrieving-taxonomy-terms-programmatically-drupal-8
sumber