web-dev-qa-db-ja.com

CCKフィールド値の数は1以上です

ノードの作成時に無制限の値を入力できるようにCCKフィールドを設定しました(値の数:無制限)。

次のコードでノードに値を出力しようとすると

_if ($node->field_tip != NULL) {
  foreach ((array)$node->field_tip as $tip) {
   print "<div class='tip'>" . $tip['view'] ."</div>";
  }
}
_

または、count($node->field_tip)を出力すると、値が1以上になることはなく、そのフィールドに値が入力されていなくても、_<div class='tip'></div>_が常に表示されます。

2
user688

CCKに関する限り、値はまだありますが、たまたま空白になっています(使用しているフィールドのタイプによっては、ほとんどの場合、空の文字列です)。生の値を確認するようにコードを変更すると、実際の値がある場合にのみ出力が表示されます。

if ($node->field_tip != NULL) {
  foreach ((array)$node->field_tip as $tip) {
    if (!empty($tip['value'])) {
      print "<div class='tip'>" . $tip['view'] ."</div>";
    }
  }
}
3
jhedstrom