Wie können Sie überprüfen, ob ein Feld leer ist, wenn Sie das $ node-Objekt haben?
Ich fand diese als mögliche Lösung:
$field = field_get_items('node', $node, 'field_post_image');
Ich kann jetzt überprüfen:
UPDATE .Ups! Das ist nicht zuverlässig, obwohl ich verspreche, dass es gestern bei mir funktioniert hat.
isset($field);
aber ich frage mich, ob es einen besseren Weg gibt.
Kläre mich auf
Sie können das folgende Snippet verwenden, um zu überprüfen, ob ein Feld leer ist.
Dieser Code ist sicherer, da verschiedene Felder unter verschiedenen Bedingungen als leer betrachtet werden. Siehe zum Beispiel den Unterschied zwischen file_field_is_empty () , number_field_is_empty () und taxonomy_field_is_empty () :
taxonomy_field_is_empty()
Überprüft die tid- Eigenschaft des$item
Parameters, währendnumber_field_is_empty()
die value- Eigenschaft desselben Parameters überprüft wird. Bei benutzerdefinierten Feldern muss möglicherweise eine komplexere Bedingung überprüft werden, damit das Feld leer bleibt.Die in der Dokumentation angegebene Beschreibung für hook_field_is_empty () lautet wie folgt:
quelle
Wir haben den Rohwert in (
$content['field_name']['#items'][0][value]
) gefunden, damit Sie mit dem Ausdruck feststellen können, ob das Feld leer ist oder nichtwo
field_name
entspricht den Namen des gewünschten Feldes.quelle
Drupal 8
Wenn jemand die gleiche Antwort in D8 benötigt, ist das, was ich mache, um mein Feld zu testen:
quelle