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

У меня есть приложение Podio, которое заполняется API-интерфейсом php через форму на веб-сайте.

Использование фрагмента Create Item работает с текстовыми полями, значениями валюты и т. Д. но мне не удалось распутать документацию о том, как установить поле категории.

Поле категории «присутствующий» представляет собой простой вариант ответа «да / нет».

Метод, показанный здесь, генерирует ошибку сервера в сочетании с фрагментом «Создать элемент». как показано ниже:

$fields = new PodioItemFieldCollection(array(
      new PodioTextItemField(array("external_id" => "title", "values" => $name)),
      new PodioTextItemField(array("external_id" => "email", "values" => $email)),
));

$item = new PodioItem(array(
    'app' => new PodioApp(intval($app_id)),
    'fields' => $fields,
));

pseudo code: if attending = yes, $attending = 1, else $attending = 2 //id's of yes and no in category field

$item->fields['attending']->values = $attending;

$item->save();

Что мне не хватает? Спасибо.


person James    schedule 10.04.2015    source источник


Ответы (2)


Для тех, кто все еще ищет ответ: Хитрость заключается в использовании массива.

Выполните оценку $ atiting перед открытием Коллекции, а затем просто добавьте эту строку в PodioItemFieldCollection.

new PodioCategoryItemField(array(
   'external_id' => 'attending', 'values' => array($attending))),

Таким образом, весь фрагмент будет выглядеть так

($foo == 'yes') ? $attending = 1: $attending = 2 ; // evaluating $foo for yes

$fields = new PodioItemFieldCollection(array(
  new PodioTextItemField(array("external_id" => "title", "values" => $name)),
  new PodioTextItemField(array("external_id" => "email", "values" => $email)),
  new PodioCategoryItemField(array(
    'external_id' => 'attending', 'values' => array($attending))) // must be an array
));

$item = new PodioItem(array(
'app' => new PodioApp(intval($app_id)),
'fields' => $fields,
));

$item->save();
person leopold    schedule 19.09.2017

Вы можете найти примеры по адресу: http://podio.github.io/podio-php/fields/#category-field

Если он по-прежнему не работает, переведите podio-php в режим отладки, чтобы вы могли видеть, какие данные отправляются в Podio: http://podio.github.io/podio-php/debug/

person Andreas Haugstrup Pedersen    schedule 10.04.2015
comment
Спасибо, Андреас, но это страница, которую я упомянул в вопросе, откуда я взял фрагмент кода. Код, который у меня есть, генерирует внутреннюю ошибку сервера, поэтому информация об отладке Podio недоступна. - person James; 16.04.2015
comment
Хотя этот ответ может помочь решить проблему OP, было бы лучше дать полный ответ. - person leopold; 20.09.2017