2017-08-03 8 views
1

を使用してアイテムのためにと使用してアイテムコレクション取得した後、フィールドデータを取得する方法:はPodio PHPのAPIを使用する場合はPodio PHPのAPI

$item_collection = PodioItem::filter($app_id, $attributes); 

をどのように私はとフィールドの値(複数可)を取得することができます例えば、emailexternal_idは、このようなすべての項目を通じて

現在、私のループ:

$items = []; 
foreach ($item_collection as $item) { 
    $email = ""; 
    foreach ($item->fields as $field) {     
     if($field->external_id == "email") { 
      $email = trim($field->values); 
     } //repeat for each field eg 'name' 
    } 
    $items[] = array (
     'email' => $email, 
     'name' => $name //etc 
    ); 
} 

は直接アイテムのコレクション全体のすべてのフィールドをループせずにフィールドの値を取得する方法はありますか? PodioItem::get_field_valueを使用して

は明らかにPodioItem::filterからすべての項目を取得するカウンタ思わ要求を行います。

+0

私はPodioのAPIを知らない、しかし、私は、「電子メール」属性が同じインデックスに常にあることを前提としていますので、あなたはdirctlyそれをアセスことができます。それ以外の場合は、小さなパフォーマンス向上のための属性を見つけた後にforeachループを止めるために 'break'を使うことができます – fehrlich

+0

残念ながら、インデックスはすべてのアイテムで同じではありません - 特定のアイテムに値がない場合フィールドは返されません。 – James

答えて

0

そこに直接API呼び出しがありますが、残念ながらその方法はクライアントでは利用できません。このURLがあなたを助けることを願っています。 https://help.podio.com/hc/en-us/community/posts/200516418-Get-Field-Values-from-Item-by-external-id-PHP-

https://developers.podio.com/doc/items/get-item-by-external-id-19556702

+0

ありがとうございますが、私は追加のAPI呼び出しを避けるようにしていました。 '$ item_collection'配列(上記のコードを参照)に、アプリケーション内のすべての項目の項目データ(項目を含む)があります。コレクションのすべての項目のすべてのフィールドをループするよりも、フィールドデータにアクセスするクリーナーな方法があるかどうかを知りたいと思います。 – James

関連する問題