Saya memiliki tipe konten yang memiliki bidang referensi entitas yang memungkinkan pengguna untuk menambahkan beberapa istilah taksonomi di bidang itu. Saya mencoba melakukan kueri yang mengambil node yang memiliki sekumpulan istilah taksonomi tertentu dalam bidang itu.
Menggunakan satu nilai di bidang itu berfungsi dengan baik, seperti itu.
$query = \Drupal::entityQuery('node')
->condition('status', NODE_PUBLISHED)
->condition('type', 'custom_type')
->condition('custom_taxonomy', 2)
->sort('field_last_name', DESC);
Di mana 2 adalah id dari istilah yang saya cari. Namun ketika saya mencoba mencari node yang mengandung dua istilah spesifik seperti itu,
$query = \Drupal::entityQuery('node')
->condition('status', NODE_PUBLISHED)
->condition('type', 'custom_type')
->condition('custom_taxonomy', [2,8])
->sort('field_last_name', DESC);
Saya menerima kesalahan
Nomor parameter tidak valid: jumlah variabel terikat tidak cocok dengan jumlah token:
Saya juga sudah berusaha
$query = \Drupal::entityQuery('node')
->condition('status', NODE_PUBLISHED)
->condition('type', 'custom_type')
->condition('custom_taxonomy', [2,8], 'IN')
->sort('field_last_name', DESC);
Yang tidak gagal, tetapi tidak memberikan hasil yang diinginkan. Ini menampilkan setiap node yang memiliki istilah 2 ATAU istilah 8. Alih-alih istilah 2 DAN istilah 8 sebagaimana dimaksud. Bagaimana saya melakukan kueri yang memeriksa apakah sebuah simpul memiliki beberapa nilai spesifik dalam bidang referensi entitas?
$and->condition('custom_taxonomy', [2], 'IN')
,$and->condition('custom_taxonomy', [8], 'IN')
'IN'
juga. Apa yang membuat perbedaan adalah dua kelompok DAN terpisah.Untuk melakukan kueri kompleks seperti yang Anda minta, Anda harus menggunakan grup kondisi dan untuk meminta delta.
Lihat dokumentasi QueryInterface :: condition .
sumber
sumber