У мене є тип вмісту, який містить посилання на сутність, що дозволяє користувачам додавати в це поле кілька термінів таксономії. Я намагаюся виконувати запити, які захоплюють вузли, які мають певний набір таксономічних термінів у цьому полі.
Використання одного значення в цьому полі працює добре, як так.
$query = \Drupal::entityQuery('node')
->condition('status', NODE_PUBLISHED)
->condition('type', 'custom_type')
->condition('custom_taxonomy', 2)
->sort('field_last_name', DESC);
Де 2 - ідентифікатор терміна, який я шукаю. Однак коли я намагаюся шукати вузли, які містять два конкретні терміни, як-от так,
$query = \Drupal::entityQuery('node')
->condition('status', NODE_PUBLISHED)
->condition('type', 'custom_type')
->condition('custom_taxonomy', [2,8])
->sort('field_last_name', DESC);
Я отримую помилку
Недійсний номер параметра: кількість зв'язаних змінних не відповідає кількості лексем:
Я також робив спробу
$query = \Drupal::entityQuery('node')
->condition('status', NODE_PUBLISHED)
->condition('type', 'custom_type')
->condition('custom_taxonomy', [2,8], 'IN')
->sort('field_last_name', DESC);
Що не дає збоїв, але не дає намічених результатів. Він відображає кожен вузол, який має або термін 2, або термін 8. Замість терміна 2 І терміна 8 за призначенням. Як я можу виконати запит, який перевіряє, чи має вузол кілька конкретних значень у посилальному полі сутності?