2015-09-01 1 views
0

Cela va me rendre absolument fou. J'ai des types de contenu personnalisés en utilisant Pods et j'essaye d'obtenir tous les enregistrements liés basés sur un parent. Dans ce cas, j'ai des états et des comtés.Interrogation de Pods.io pour les documents liés

Je commence avec:

$states = pods('state', $params); 

Et assez sûr j'obtenir tous les états sont entrés. Ensuite, je veux parcourir tous les états et obtenir les comtés qui sont liés à l'état par le 'state_id' mais je n'ai aucune idée sur la façon de le faire. Voici ce que j'ai.

while ($states->fetch()) { 
    echo $states->display('state_name') . "<br />"; 
    $params = [ 
     'where'=>"meta_value.state_id = 19" 
    ]; 
    $county = pods('county', $params); 
    print_r($county); 
} 

Bien sûr, la clause where est incorrecte, mais la documentation prête à confusion au mieux. Je vois des choses comme 'related_field_name.meta_value' ou 'related_field_name.field_name'. J'ai essayé la requête ci-dessus avec la clause where ayant state.meta_value=19 (l'ID d'état qui est lié au comté) et il m'a juste donné une énorme liste d'informations mais pas d'enregistrements.

Dans la base de données wordpress, j'ai wp_postmeta qui contient un certain nombre de meta_key et meta_value pour l'enregistrement du comté incluant une méta_key de 'state_id' avec la valeur '19' que je veux faire correspondre dans la boucle. Comment puis-je dire "Saisis-moi tous les enregistrements de publication qui ont un state_id de 19"?

+0

Quelques petites questions avant que je puisse vous donner la réponse finale: 1. Quel type de pod est État et dans le comté? 2. S'agit-il d'un champ de relation qui se rapporte aux États situés dans le groupe de comté? –

+0

Les pods sont l'état et le comté. Le comté a une valeur meta de l'ID poste de l'état appelé 'state_id' (pour la méta_key) –

+0

Donc, ce sont les deux pods "post type", utilisant "meta-based storage"? –

Répondre

0

Essayez ceci:

<?php 
$params = array(
    'limit' => -1, 
); 

$states = pods('state', $params); 

while ($states->fetch()) { 
    // Pods::index() maps to "post_title" 
    echo '<h3>' . $states->index() . '</h3>'; 

    // Pods::id() maps to "ID" 
    $county_params = array(
     'where' => 'state_id.meta_value = ' . (int) $states->id(), 
    ); 

    /* 
    // If you had a relationship field instead 
    // and the field was named "state" 
    // and it was related to the "state" post type 
    // then it would be: 
    $county_params = array(
     'where' => 'state.ID = ' . (int) $states->id(), 
    ); 
    */ 

    $county = pods('county', $county_params); 

    // List all counties for state 
    if (0 < $county->total()) { 
     echo '<ul>'; 

     while ($county->fetch()) { 
      // index() maps to "post_title" 
      echo '<li>' . $county->index() . '</li>'; 
     } 

     echo '</ul>'; 
    } 
} 
+0

Je reçois Réponse: Colonne inconnue 'state_id.meta_value' dans 'where clause' pour le premier exemple et Response: Colonne inconnue 'state.ID' dans 'where clause' dans l'autre. L'état est la méta_key pour le comté. –

+0

Qu'en est-il de state_id.ID? –