Drupal → Как проверить имеет ли значение поле сущности

06.11.2014

Правильный способ проверить существование непустого значения в поле:

$node = node_load(123);
$field_items = field_get_items('node', $node, 'field_mytestfield');
$field_info = field_info_field('field_mytestfield');
if (!empty($field_items) && _field_filter_items($field_info, $field_items)) {
  // field not empty
}

Возникнет вопрос - почему бы просто не вызвать !empty($node->field_mytestfield)? Потому что в очень редких случаях поле может содержать пустые значения:

$node->field_mytestfield['und'] = array();
// или
$node->field_mytestfield['und'][0]['value'] = '';
// или даже
$node->field_mytestfield['fr'][0]['fid'] = 0;
$node->field_mytestfield['fr'][1]['fid'] = 0;
Написанное актуально для
Drupal 7
Похожие записи

Добавить комментарий