1

私は2つのポッドを持っています:

  • 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')

42のIDですparticipant

PodsAPIを使用してこのようなSQLクエリを作成する方法を理解しようとしています。

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

これはそのようなクエリを書く正しい方法ですか?

4

1 に答える 1

4

あなたは物事を複雑にしすぎています。ポッドは、最も強力な機能の1つであるフィールドトラバーサルを使用して、すべての結合を自動的に実行します。

これを試して:

$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です。

于 2013-01-04T22:47:05.453 に答える