2017-08-03 58 views
1

當使用波迪奧PHP API項目並獲得使用項目集合後:如何獲得現場數據使用波迪奧PHP API

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

我怎樣才能得到一個場與一個值(一個或多個) external_id,例如,email

目前通過這樣所有的項目我的循環:

$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

我不知道波迪奧API,但我會假設「電子郵件」屬性始終是相同的索引,所以你可以接取消法它。否則,你可以使用'break'來停止foreach循環,當你找到一個小的性能提升屬性後 – fehrlich

+0

不幸的是,所有項目的索引是不一樣的 - 如果一個特定的項目沒有這個值那麼它不會被返回。 – James

回答

0

有一個直接的API調用存在,但不幸的是,這種方法在客戶端似乎不可用。希望這個網址幫助你。 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