Как получить данные поля для элемента с помощью Podio PHP API

При использовании Podio 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.


person James    schedule 03.08.2017    source источник
comment
Я не знаю Podio API, но предполагаю, что атрибут электронной почты всегда находится в одном индексе, поэтому вы можете получить к нему прямой доступ. В противном случае вы могли бы использовать break, чтобы остановить цикл foreach после того, как вы нашли атрибут для небольшого повышения производительности.   -  person fehrlich    schedule 03.08.2017
comment
К сожалению, индекс не является одинаковым для всех элементов - если конкретный элемент не имеет значения для этого поля, он не возвращается.   -  person James    schedule 03.08.2017


Ответы (1)


Есть прямой вызов api, но, к сожалению, этот метод, похоже, недоступен в клиенте. надеюсь, что эти URL-адреса помогут вам. 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

person priya lingam    schedule 03.08.2017
comment
Спасибо, но я пытался избежать дополнительных вызовов API. У меня есть все данные об элементах (включая поля) для всех элементов в приложении в массиве $item_collection (см. Код выше). Я хотел бы знать, есть ли более чистый способ доступа к данным поля, чем цикл по каждому полю для каждого элемента в коллекции. - person James; 07.08.2017