podio,如何获得具有特定字段值的所有项目

时间:2017-08-23 14:05:43

标签: podio

我需要将所有具有活动房屋设置的项目设置为活动状态,因此不是获取所有项目并测试活动房屋是否设置为活动状态,如下所示:

    $items = PodioItem::filter($app_id,array('external_id'=>array('active-house')));
    $today_active=array();
    foreach($items as $item){
    $fields=$item->fields;

            foreach($fields as $f){
                if($f->external_id=='active-house'){
                    print_r($f->values);
                    if($f->values[0]['text']=='Active'){
                        $today_active[]=$item->title;
                    }
                }

            }
    }

我只需要过滤那些active-house设置为活动的那些,我该怎么做?

1 个答案:

答案 0 :(得分:2)

1)手工制作 - 使用filter by view。首先设置过滤器并将其保存为Podio中的视图(manuallyvia API)。它可以是团队视图,也可以是私人视图,无关紧要。然后,您只需从该视图中获取已过滤的项目:

    $items = PodioItem::filter_by_view( $app_id, $view_id, $attributes);

请参阅此处的文档:https://developers.podio.com/doc/items/filter-items-by-view-4540284

如果您希望用户/管理员无需任何编码即可控制脚本结果,这种方法很有用 - 他们只需编辑视图。

2)仅API方式 - 使用过滤器中的字段。注意,并非所有字段类型都可用于过滤,即不能使用文本字段。以下是具有多选的类别字段的示例:

    $attributes = array(
        "filters" => array(
            $field_id => array(1,2,4) // 1,2,4 - IDs of needed category values
        )
    );

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

请参阅有关如何过滤其他字段类型的文档:https://developers.podio.com/doc/filters