エクスプレスの値のうち、アソシエーションで参照されている値が表示されない

2020年3月28日 at 10:21

エクスプレスで登録した値を表示する方法として、カスタムBlockをexpress_entry_listを元に作成しました。

エクスプレスの値は
$value->getXXX();
(XXXのところはエクスプレスのハンドル名をキャメルケースにしたもの)で取得できることまではわかりました。これはうまく動作しています。

ところが、エクスプレスの値のうち、アソシエーションで参照されている値(エクスプレスエンティティ)についてはこの方法で取得しようとしても何も取得されません。空の値が戻ってきてしまいます。

海外のフォーラムで、おそらくここに書いてあるのと同じ事象だと思います。
http://www.concrete5.org/community/forums/customizing_c5/getting-express-entity-values
これの解決方法はどなたかご存知でしょうか。

タグ:

Re: エクスプレスの値のうち、アソシエーションで参照されている値が表示されない

2020年4月14日 at 13:35
$value->getEntry()->getXXXX()
では、ダメでしょうか?
 

Re: エクスプレスの値のうち、アソシエーションで参照されている値が表示されない

2020年4月17日 at 14:53
お返事いただいていたのに気づかずすみません。
さんざん試行錯誤して、なんとか自己解決していました。最終的には、
$value->getXXX();
の方法でも、うまくいきました。まずアソシエーションがあるかどうかをif文で確認し、さらにその先のアソシエーションテーブルのほうの実際の値を取ることで解決できました。
こんな感じです。
<?php
$genre = $value->getGenre();
if (is_object($genre)) { ?>
<p class="genre"><?=$genre->getGenreName()?></p>
<?php } ?>
 

Re: エクスプレスの値のうち、アソシエーションで参照されている値が表示されない

2020年4月17日 at 17:08
よかったです。