2017-08-23 13 views
0

アクティブハウスがアクティブに設定されているすべてのアイテムを取得する必要があるため、アクティブなハウスがアクティブに設定されているかどうか、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; 
        } 
       } 

      } 
    } 

アクティブなアクティブセットをアクティブに設定したものだけをフィルタリングする必要があります。どのようにすればいいですか?

答えて

1

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専用の方法 - フィルタのフィールドを使用します。すべてのフィールドタイプをフィルタリングに使用できるわけではないこと、つまりテキストフィールドを使用できないことに注意してください。ここでは、マルチセレクションカテゴリフィールドの例です:https://developers.podio.com/doc/filters

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

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

は、他のフィールドタイプをフィルタリングする方法についてのドキュメントを参照してください。

関連する問題