我需要将所有具有活动房屋设置的项目设置为活动状态,因此不是获取所有项目并测试活动房屋是否设置为活动状态,如下所示:
$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设置为活动的那些,我该怎么做?
答案 0 :(得分:2)
1)手工制作 - 使用filter by view。首先设置过滤器并将其保存为Podio中的视图(manually或via 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