收集引用的应用程序的值

时间:2018-01-17 14:15:38

标签: podio

我正在尝试清理和优化我的到来我在podio的API上运行。我目前正在做的是使用过滤器查询从一个应用程序返回一个集合。然后我循环遍历该集合。在每个项目上,我使用Podio get_field_value返回引用应用程序中字段的值。这会产生很多API调用。我想在一个API调用中检索所有内容这是我当前代码的简单版本:

 $collection = PodioItem::filter(WHSE_ID, array(
    "filters" => array(
        WHSE_EQUP_STATUS => array(2),
        ),
        "sort_by" => WHSE_LOAD_IN,
        "sort_desc" => false,
        "limit" => 50       
        )

    ); 

foreach ($collection as $item) {

    // Table-A ID
    $whId = $item->item_id;

    // Referenced App Item(s)
    $nucId = $item->fields[0]->values[0]->item_id;      

    // Get Referenced App Item Field            
    $app_b_value = PodioItem::get_field_value($nucId, NUC_LOAD_OUT);

    echo $app_b_value; 


    }

有更有效的方法吗?我正在考虑在mysql查询中使用JOIN的方式。

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:0)

如果您尝试从过滤后的收藏品中获取每件商品的价值,那么您每次都不需要拨打podio电话。

Podio过滤器调用将为您提供值。你只需要从每个项目中获得价值。

喜欢以下

foreach ($podioFilterData['items'] as $itemData) {
        $itemFields = $itemData['fields'];
            foreach ($itemFields as $field) {
                   $value =   $field['values'][0];
                }
}