Estou substituindo um modelo de campo para uma das minhas visualizações e quero poder acessar outro valor de campo da variável $ row. A documentação no arquivo de modelo mostra isso:
Ao buscar a saída da linha $, essa construção deve ser usada: $ data = $ row -> {$ field-> field_alias}
Meu campo é chamado field_calendar_title, mas o seguinte não funciona conforme o esperado:
$row->{$field->field_calendar_title}
Estou tendo o erro a seguir:
Erro fatal: não é possível acessar a propriedade vazia ...
O campo "alias" é diferente do nome do campo no tipo de conteúdo?
Saída "limpa" do var_dump de $ 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
está indefinida ... você tentou fazer umvar_dump($row)
para ver o que realmente está lá? Você provavelmente encontrará o campo que procura com muita facilidade :)var_dump($row)
para a sua pergunta como uma edição que eu poderia ser capaz de detectar o valor que você precisaUma abordagem mais simples:
Aqui, $ fieldname é o nome do campo original (não o alias da visualização), por exemplo, 'field_myfield'.
fonte
Talvez um pouco tarde, mas para referência futura, aqui está a minha resposta:
A descrição é bastante vaga, mas você deve literalmente usar:
$row->{$field->field_alias}
No seu arquivo de modelo, também é observado que:
Variáveis disponíveis:
No campo $ existe um campo chamado field_alias. Então,
$row->{$field->field_alias}
na verdade, está apontando para, no seu caso, field_calendar_title.Tente fazer um var_dump de $ field e você verá por si mesmo.
Espero que isso ajude quem se deparar com este post.
Gerben
fonte
A maneira mais simples é: $ fields ["field_name"] -> content; Onde field_name -> cck field name.
Espero que ajude !!
Felicidades ! Raj
fonte
$fields
variável disponível no modelo de campo