Saya mengganti templat bidang untuk salah satu tampilan saya dan saya ingin dapat mengakses nilai bidang lain dari variabel $ row. Dokumentasi pada file templat menunjukkan ini:
Saat mengambil output dari $ row, konstruk ini harus digunakan: $ data = $ row -> {$ field-> field_alias}
Bidang saya disebut field_calendar_title, tetapi yang berikut ini tidak berfungsi seperti yang diharapkan:
$row->{$field->field_calendar_title}
Saya mendapatkan kesalahan berikut:
Kesalahan fatal: Tidak dapat mengakses properti kosong ...
Apakah bidang "alias" berbeda dari nama bidang dalam jenis konten?
Output "Dibersihkan" dari var_dump dari $ 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
tidak terdefinisi ... sudahkah Anda mencoba melakukanvar_dump($row)
untuk melihat apa yang sebenarnya ada di sana? Anda mungkin akan menemukan bidang yang Anda cari dengan mudah :)var_dump($row)
ke dalam pertanyaan Anda sebagai hasil edit, saya mungkin dapat menemukan nilai yang Anda butuhkanPendekatan yang lebih sederhana:
Di sini, $ fieldname adalah nama field asli (bukan tampilan-alias), mis. 'Field_myfield'.
sumber
Mungkin agak terlambat, tapi untuk referensi di masa depan inilah jawaban saya:
Uraiannya agak kabur, tetapi Anda harus benar-benar menggunakan:
$row->{$field->field_alias}
Dalam file template Anda, juga dicatat bahwa:
Variabel yang tersedia:
Dalam $ field ada bidang yang disebut field_alias. Jadi
$row->{$field->field_alias}
sebenarnya menunjuk ke, dalam kasus Anda, field_calendar_title.Cobalah membuat var_dump $ field dan Anda akan melihatnya sendiri.
Semoga ini bisa membantu siapa pun yang datang di posting ini.
Gerben
sumber
Cara paling sederhana adalah: $ fields ["field_name"] -> konten; Di mana field_name -> nama bidang cck.
Semoga itu bisa membantu !!
Bersulang ! Raj
sumber
$fields
variabel yang tersedia di templat bidang