Ich überschreibe eine Feldvorlage für eine meiner Ansichten und möchte über die Variable $ row auf einen anderen Feldwert zugreifen können. Die Dokumentation in der Vorlagendatei zeigt Folgendes:
Beim Abrufen der Ausgabe aus der $ row sollte dieses Konstrukt verwendet werden: $ data = $ row -> {$ field-> field_alias}
Mein Feld heißt field_calendar_title, aber Folgendes funktioniert nicht wie erwartet:
$row->{$field->field_calendar_title}
Ich erhalte folgenden Fehler:
Schwerwiegender Fehler: Kein Zugriff auf leere Eigenschaft ...
Unterscheidet sich das Feld "Alias" vom Namen des Feldes im Inhaltstyp?
"Bereinigte" Ausgabe von var_dump von $ row:
stdClass Object
(
[node_title] => ...
[nid] => 568
[field_data_field_performance_date_delta] => 0
[field_data_field_performance_date_language] => und
[field_data_field_performance_date_bundle] => event
[field_data_field_performance_date_field_performance_date_val] => 2012-03-02 19:00:00
[field_data_field_performance_date_node_entity_type] => node
[_field_data] => Array
(
[nid] => Array
(
[entity_type] => node
[entity] => stdClass Object
(
[vid] => 878
[uid] => 0
[title] => ...
[log] =>
[status] => 1
[comment] => 0
[promote] => 0
[sticky] => 0
[nid] => 568
[type] => event
[language] => und
[created] => 1329332968
[changed] => 1331836509
[tnid] => 0
[translate] => 0
[revision_timestamp] => 1331836509
[revision_uid] => 1
[body] => Array
(
[und] => Array
(
[0] => Array
(
[value] => ...
[summary] => ...
[safe_summary] => ...
)
)
)
[field_resident_company] => Array ( [und] => Array ( [0] => Array ( [tid] => 3 ) ) )
[field_series] => Array ( [und] => Array ( [0] => Array ( [tid] => 36 ) ) )
[field_venue] => Array ( )
[field_rotator_image] => Array ( )
[field_exclude] => Array ( [und] => Array ( [0] => Array ( [value] => 0 ) ) )
[field_performance_image] => Array ( )
[field_premiere] => Array ( [und] => Array ( [0] => Array ( [value] => 1330714800 [timezone] => UTC [timezone_db] => UTC [date_type] => datestamp ) ) )
[field_closing] => Array ( [und] => Array ( [0] => Array ( [value] => 1330714800 [timezone] => UTC [timezone_db] => UTC [date_type] => datestamp ) ) )
[field_exclude_update] => Array ( [und] => Array ( [0] => Array ( [value] => 0 ) ) )
[field_performance_date] => Array ( [und] => Array ( [0] => Array ( [value] => 2012-03-02 19:00:00 [timezone] => UTC [timezone_db] => UTC [date_type] => datetime ) ) )
[field_performance_id] => Array ( [und] => Array ( [0] => Array ( [value] => 1436 [format] => [safe_value] => 1436 ) ) ) [field_event_status] => Array ( [und] => Array ( [0] => Array ( [value] => open ) ) )
[field_calendar_title] => Array ( [und] => Array ( [0] => Array ( [value] => PSYCHIC EXP [format] => [safe_value] => PSYCHIC EXP ) ) )
...
)
)
$field
ist undefiniert ... hast du versucht einevar_dump($row)
zu machen um zu sehen was da eigentlich drin ist ? Wahrscheinlich werden Sie das Feld, nach dem Sie suchen, leicht erkennen :)var_dump($row)
in Ihre Frage als Bearbeitung einfügen können, kann ich möglicherweise den gewünschten Wert erkennenEin einfacherer Ansatz:
Hier ist $ fieldname der ursprüngliche Feldname (nicht der Ansichts-Alias-Feldname), z. B. 'field_myfield'.
quelle
Vielleicht etwas spät, aber zum späteren Nachschlagen hier meine Antwort:
Die Beschreibung ist ziemlich vage, aber Sie sollten wörtlich verwenden:
$row->{$field->field_alias}
In Ihrer Vorlagendatei ist außerdem Folgendes vermerkt:
Variablen zur Verfügung:
In $ field gibt es ein Feld namens field_alias. So
$row->{$field->field_alias}
zeigt tatsächlich, in Ihrem Fall, field_calendar_title.Versuchen Sie, ein var_dump von $ field zu erstellen, und Sie werden es selbst sehen.
Hoffe, das hilft jedem, der auf diesen Beitrag stößt.
Gerben
quelle
Der einfachste Weg ist: $ fields ["field_name"] -> content; Wobei field_name -> cck field name.
Hoffe das wird helfen !!
Prost ! Raj
quelle
$fields