Php 从drupal视图提取数据未获取所有数据
我在Drupal中有一个显示姓名、徽标、电话号码和电话类型的视图。我已经创建了一个php脚本来从视图中提取它,这样我就可以在android应用程序中运行它并将数据拉入其中(作为JSON)。我已经成功地创建了带有节点id和公司名称(标题)的JSON输出,但是当我试图获取电话信息时,我得到了空值,我附上了下面的代码Php 从drupal视图提取数据未获取所有数据,php,android,api,drupal,Php,Android,Api,Drupal,我在Drupal中有一个显示姓名、徽标、电话号码和电话类型的视图。我已经创建了一个php脚本来从视图中提取它,这样我就可以在android应用程序中运行它并将数据拉入其中(作为JSON)。我已经成功地创建了带有节点id和公司名称(标题)的JSON输出,但是当我试图获取电话信息时,我得到了空值,我附上了下面的代码 foreach($view->result AS $company) { $companylist = array(); $data = $company->
foreach($view->result AS $company) {
$companylist = array();
$data = $company->_field_data['nid']['entity'];
$companylist['company'] = $company->node_title;
$companylist['nid'] = $company->nid;
$data2 = field_get_items('node',$data,'field_data_field_companyphone_node_entity_type');
$phone = entity_load('field_collection_item',array($data2[LANGUAGE_NONE][0]['value']));
$companylist['type'] = $phone[0];
$companylist['phone'] =$phone[1];
$return[]=$companylist;
}
}
return $return;
}
通过在我的代码中使用包装器,我最终找到了一个解决方案。我还为字段集合的每个循环创建了一个内部循环,希望这将在将来帮助其他人。下面包含了更新的代码
$fc_fields = field_get_items('node', $node, 'field_companyphone');
if (!empty($fc_fields)){
$field = field_view_value('node',$node, 'field_companyphone', $fc_fields[0]);
foreach ($field['entity']['field_collection_item'] as $id => $field_collection){
// load the field collection item entity
$field_collection_item = field_collection_item_load($id);
// wrap the entity and make it easier to get the values of fields
$field_wrapper = entity_metadata_wrapper('field_collection_item', $field_collection_item);
// all values from a field collection
$field_collection_phone_type_item = $field_wrapper->field_companyphone_type->value(); // an array of phone type data
$companylist['type'] = $field_collection_phone_type_item->name;
$companylist['phone'] = $field_wrapper->field_phone_phone->value();
}
}
$return[]=$companylist;
3
}
对于1{
?