Как запросить все связанные элементы в отношениях "многие ко многим", используя Pods API?
У меня есть два стручка:
course
participant
Стручок course
имеет поле выбора для стручка participant.
Поле является полем множественных отношений. Итак, каждый course
пункт имеет несколько participants.
Я хочу найти все course
предметы, где определенный participant
относится.
Итак, я думаю, что SQL-запрос, такой как следующий, будет делать то, что я хочу:
SELECT DISTINCT `t`.* FROM `wp_pods_course` AS `t` WHERE t.id IN
(SELECT DISTINCT r.item_id FROM wp_podsrel AS r WHERE r.related_item_id = '42')
42
это идентификатор participant
,
Я пытаюсь выяснить, как написать такой SQL-запрос, используя Pods API:
$pod = pods('course');
$participant_id = $participant->field('id');
$params['where'] = "t.id in (SELECT r.id FROM ??? WHERE ???)";
$pod->find($params);
Это правильный способ написать такой запрос?
1 ответ
Решение
Вы слишком усложняете вещи, Pods автоматически делает все соединения для вас с помощью одной из самых мощных функций - обхода поля.
Попробуй это:
$pod = pods( 'course' );
// I use ->id() because it's always the right ID field, no matter what pod type
$participant_id = $participant->id();
$params = array(
'where' => 'participants.id = ' . (int) $participant_id
);
$pod->find( $params );
куда particpants
это имя поля ваших отношений, id это идентификатор поля для этого связанного объекта.