J'ai un template smarty où un plugin charge un tableau pour moi. Ce tableau contient des éléments qui sont eux-mêmes des tableaux d'objets stdClass et d'autres éléments qui sont simplement des objets stdClass. Par exemple, je pourrais avoirÉlément spécifique d'accès Smarty du tableau de seconde dimension
Array
(
[0] => Array
(
[0] => stdClass Object
(
[id] => 1
[avatar_file] => joey_thumb.jpg
[group] => 0
[order_in_group] => 0
)
[1] => stdClass Object
(
[id] => 2
[avatar_file] => christy_thumb.jpg
[group] => 0
[order_in_group] => 1
)
)
[1] => stdClass Object
(
[id] => 11
[avatar_file] => angela_thumb.jpg
[group] =>
[order_in_group] =>
)
)
Dans mon modèle, j'ai quelque chose à l'effet de:
{foreach from=$membersArray item=memberOrGroup}
{if is_array($memberOrGroup)}
<div>{$memberOrGroup[0].id}</div>
{else}
<div>{$memberOrGroup.id}</div>
{/if}
{/foreach}
Mais dès qu'il frappe tout remplacement normal comme dans mes balises div ci-dessus qui a un Référence de tableau comme $ memberOrGroup [0], j'obtiens l'erreur "Impossible d'utiliser l'objet de type stdClass comme tableau". Je suis en quelque sorte à la fin de ma vie, puisque je peux imprimer le tableau original et il montre les éléments disposés comme ci-dessus. Je peux même print_r à l'intérieur du "is_array" si le bloc utilise {$ memberOrGroup [0] | print) r} et il imprime un objet stdClass rempli avec les bonnes données et ne me donne pas d'erreur.
J'ai vu plusieurs solutions sur le Web qui montrent l'utilisation de boucles foreach imbriquées, mais dans la version réelle de ma boucle, chaque élément du tableau de deuxième dimension doit être placé à un certain endroit ($ memberOrGroup [0 ] a une place spéciale, tout comme $ memberOrGroup [1]).
J'ai essayé plusieurs variantes, y compris l'utilisation de sections à la place, mais je parviens toujours à la même erreur.
Doh! Je nouveau ça doit être quelque chose de bête! Je n'utilise pas souvent smarty pour savoir ... (.) Est pour les tableaux, (->) est pour les objets. Je t'ai eu! – Matthew
omg .... Est-ce vraiment ça? Cela semble si évident ... – Marnix