如何使用Pods API查询多对多关系中的所有相关项?

时间:2013-01-04 05:47:44

标签: wordpress many-to-many podscms

我有两个Pod:

  • course
  • participant

广告连播course有一个PICK字段指向广告连接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')

42participant的ID。

我试图弄清楚如何使用Pods API编写这样的SQL查询:

$pod = pods('course');
$participant_id = $participant->field('id');
$params['where'] = "t.id in (SELECT r.id FROM ??? WHERE ???)";
$pod->find($params);

这是编写此类查询的正确方法吗?

1 个答案:

答案 0 :(得分:4)

你过度复杂的事情,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是该相关对象的字段ID。