【问题标题】:Only outputting specific fiels from Podio Item Filter仅从 Podio 项目过滤器输出特定字段
【发布时间】:2014-02-07 13:29:35
【问题描述】:

我们需要提取特定的字段,不管它们是否有数据。

如果我 f.ex.想要一个只有带有外部 id 的字段的 putput:'logo' 我正在尝试这个:

 $limit = 10;
 $app_id = xxxxxxx;
 $items = PodioItem::filter($app_id,array('Limit' => $limit,'external_id' => 'logo'));

在 podio 中并没有填写所有字段,结果是我们没有得到字段“logo”的返回值。

当我们没有从字段徽标中获得返回时 - 数组输出的结构不合理,因此我们可以获取我们需要的数据。

我们如何做到这一点?


添加文字

粗略打印输出示例:

items[0] = 公司名称、徽标、地址、电话、国家 (Logo中有数据)

items[1] = 公司名称、地址、电话、国家、联系人 (Logo中没有数据)

items[2] = 公司名称、地址、电话、国家

出现的问题

items[2][4] 不存在(但我不知道)

items[0][2] 是地址字段(但我不知道)

items[1][2] 是电话字段(但我不知道)

在项目中寻找公司联系人 [x][4] 将以

结尾

[0] = 错误(国家/地区)

[1] = 正确数据(联系人)

[2] = PHP 错误

就像在 SQL 中一样,我会使用 coloumn_name_1、coloumn_name_2 等...并仅从这些字段中获取数据。

【问题讨论】:

  • 您如何处理导致问题的项目?
  • 在上面的例子中添加了文本..

标签: php filter podio


【解决方案1】:

PodioItem 对象具有项目字段的集合。正如您所注意到的,仅包含具有值的字段(因为包含空字段是多余的)。正如您所指出的,您无法通过数组偏移量可靠地访问字段。

你应该做什么通过field_id或external_id访问它。这些是唯一标识符。为此,您可以在 PodioItem 对象上使用 field 方法:

$items = PodioItem::filter(...);
foreach ($items['items'] as $item) {
  // Get field with external_id "logo". You can also pass in field_id
  $field = $item->field('logo');

  if ($field) {
    print "Found a logo field!";
  }
}

【讨论】:

  • 你好安德烈亚斯。我得到了你的答案。毫无疑问,很高兴您能回答我的问题。我虽然遇到了一个问题,即我需要处理的数据量很大。我看到您在文档中声明,应尽可能应用缓存。如果我们仍想接收完整的数据集,是否可以限制接收的数据量......只是有限的数据量?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多