Smartyにオブジェクト配列を表示

PC関連 | 2008-05-21  

Smartyにオブジェクトを渡すときは、

$smarty->register_object(“hoge”, $hogehoge);

で、オブジェクトの登録なんかをしますが、
オブジェクト配列を渡してプロパティ表示したい場合には、
register_objectではうまくいきません。。

どうやら、register_objectについては、
クラスなんかのオブジェクトのメソッドを呼び出すのがメインのようで、
オブジェクトのプロバティをただ参照したいっていうのには効かないようです。

で、その場合、一階層下げて、
オブジェクトのプロパティにさらに配列を作ってあげて
その配列をassignでSmartyに渡すと、できなくはない。。

例:
■Smarty側(例えばインデックスの配列にオブジェクトを入れてる場合)
{$hoge[0]->メソッド名()}

または、PHPでオブジェクトのプロパティを連想配列に変換してくれる関数
get_object_varsを使えるのかなぁ。。

例:
■PHP側
$Smarty->assign(‘arrayData’,get_object_vars($objData));

でも、これってやっぱりクラスとかのオブジェクトの場合なんかで、
既に配列になったオブジェクトでは使えない??
自分まだまだだの。。

ほげー

Leave a Reply

Theme by othico