[SMARTY] looping over an array of objects

Isaac Vetter <[email protected]>
Newsgroups gmane.comp.php.smarty.general
Organization Department of Mathematics, Purdue University
Message-ID <[email protected]>
I'm setting up propel (http://propel.phpdb.org/), which is an 
object-relational mapper, like DB_Object.  So, database queries return 
objects, many of which need to be passed to a smarty template for 
display.  I could manually move each relevant property into an array 
($ary[$i]['id'] = $aryOfObj[$i]->getId()), but ... I really don't want 
to have to do that.

The smarty documentation implies that an array of objects can be looped 
over, if the array is assign()'d or assign_by_ref()'d.  This doesn't 
seem to be working for me.  Can someone confirm that this works?

If this doesn't work, I'm thinking of writing/using code that uses 
reflection to automatically call property getters to create the 
smarty-required multi-dimensional arrays, any suggestions?

Much Thanks,

Isaac Vetter


-----------------------------------------
Smarty allows access to PHP objects through the templates. There are two 
ways to access them. One way is to register objects 
<http://smarty.php.net/manual/en/api.register.object.php> to the 
template, then use access them via syntax similar to custom functions. 
The other way is to assign objects 
<http://smarty.php.net/manual/en/api.assign.php> to the templates and 
access them much like any other assigned variable. The first method has 
a much nicer template syntax. It is also more secure, as a registered 
object can be restricted to certain methods or properties. However, *a 
registered object cannot be looped over or assigned in arrays of 
objects*, etc. The method you choose will be determined by your needs, 
but use the first method whenever possible to keep template syntax to a 
minimum.

http://smarty.php.net/manual/en/advanced.features.php#advanced.features.objects

-- 
Smarty General Mailing List (http://smarty.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.