field_get_items
是獲取價值的最佳方式,因爲它爲您管理語言。否則,如果你想要更多的字段,你可以做一個SQL查詢。你還可以創建這樣的自定義函數:
/**
* @param $entity_type
* @param $entity
* @param array $field_names // field_names
* @param null $langcode
* @return array
*/
function multi_field_get_items($entity_type, $entity, $field_names = array(), $langcode = NULL){
$field_values = array();
foreach ($field_names as $field_name){
$data = field_get_items($entity_type, $entity, $field_name, $langcode);
if(is_array($data) && count($data) > 1){
foreach ($data as $several_values) {
$field_values[ $field_name ][] = current($several_values);
}
}else if(is_array($data) && count($data) == 1){
$field_values[ $field_name ] = current(current($data));
} else {
$field_values[ $field_name ] = null;
}
}
return $field_values;
}
例子:
$field = multi_field_get_items('node', $node, array('field_rate'));
var_dump($field); // array('field_rate' => 'value of field rate');
如果是一個集合,它將返回:
array('field_rate' => array('value of field rate 1', 'value of field_rate 2'));
來源
2017-07-28 07:56:52
Fky
'field_get_items'是獲得一個最好的方法價值,因爲它爲你管理語言。如果您需要獲取多個字段的值,則必須在循環中使自定義函數使用'field_get_items' – Fky