it-swarm-id.com

Di mana saya menemukan ID kosa kata ($ vid)?

Dalam Drupal 6 saya akan pergi ke bagian taksonomi/admin saya dan saya dapat menemukan $ vid (angka) di URL.

Dalam Drupal 7 (tidak diragukan karena pengenalan istilah sebagai entitas) URL tidak lagi sebagai verbose (dan beberapa orang akan mengatakan lebih bersih) karena sekarang menampilkan nama mesin (nama bundel?) kosakata seperti yang dapat dilihat dalam admin/structure/taxonomy/my_vocabulary/edit.

Akhir permainan saya adalah untuk menggunakan taxonomy_get_tree ($ vid, $ parent, $ max_depth, $ load_entities) untuk memuat kosakata saya, dan bekerja dengannya dengan cara yang mulia dan berlimpah, tetapi sayangnya fungsi ini tidak menerima nama mesin tetapi mungkin lebih suka angka $vid.

Saya akan menerima alternatif untuk memuat pohon kosakata lengkap (mis. Semua istilah dan hubungan mereka satu sama lain), tetapi saya pikir pertanyaan ini harus dijawab langsung untuk generasi mendatang ke google.

23
electblake

Sebenarnya Anda bisa menggunakan:

$vocab = taxonomy_vocabulary_machine_name_load('my_vocabulary');
$vid = $vocab->vid;
33
Manu

Mengikuti Manu, jika Anda memiliki akses Drush baris perintah, Anda dapat melakukan:

drush php-eval '$ tax = taxonomy_vocabulary_machine_name_load ("main_site_structure"); echo $ tax-> vid;'
10
Robin van Emden

Anda dapat menggunakan secara manual memeriksa {taxonomy_vocabulary} tabel dalam database, dan kemudian periksa kolom vid.

1
sumaiya

Dalam D7

Jika yang Anda butuhkan adalah ID kosakata (vid) dan Anda tahu nama mesin, Anda dapat menggunakan:

$query = db_select('taxonomy_vocabulary', 'tv');
$query->fields('tv', array('vid'));
$query->condition('tv.machine_name', __VOCAB_MACHINE_NAME, '=');
$result = $query->execute();
$data = $result->fetchAssoc();
$vid = $data['vid'];

Peningkatan kinerja kecil: ~ 0,0036489963531494 detik menjadi ~ 0,00030779838562012 detik.

Ini, tentu saja, dapat disesuaikan sesuai kebutuhan. Ubah saja kondisinya menjadi informasi apa yang Anda miliki.

1
ryanka

Saya menggunakan entity_load () untuk memuat objek vocab saya, dan menerima $ vid.

Caranya adalah dengan memberikan false untuk parameter ke-2 (yaitu $ids) dan kemudian referensi taxonomy_vocabulary tabel dalam database mysql Anda untuk melihat apa yang dapat Anda lewati sebagai ketentuan. Saya memilih untuk menggunakan machine_name seperti yang Anda lihat di bawah:

$ids = false;
$conditions = array('machine_name' => 'my_vocabulary');
$vocab = entity_load('taxonomy_vocabulary', $ids, $conditions);

Jika Anda mengetahui cara yang lebih cepat/lebih ringan, silakan tawarkan di sini:)

1
electblake

Ini untuk memuat menggunakan kueri bidang entitas seperti yang disebutkan bojan:

$query = new entityFieldQuery();
$result = $query
  ->entityCondition('entity_type', 'taxonomy_vocabulary')
  ->propertyCondition('machine_name', 'my_vocabulary')
  ->execute();

if (empty($result['taxonomy_vocabulary'])) {
  return;
}

$vocabularies = taxonomy_vocabulary_load_multiple(array_keys($result['taxonomy_vocabulary']));
dpm($vocabularies);
0
Roy Segall

Ini adalah cara tercepat bagi saya untuk melihat daftar semua ID kosakata melalui Drush:

  1. Hubungkan ke database Anda dengan perintah Drush
    sqlc drush
  2. Di Prompt mysql, ketik
    pilih * dari taxonomy_vocabulary;
0
peezy