Ho il seguente codice smarty:
{foreach from=$additional_fields item=v} {if $v.fieldid eq 5} {php} // several pounds of php code here $myfieldid = {$v.fieldid}; // this is wrong {/php} {/if} {/foreach}
Sto cercando di prendere l'ID field corrente con il mio codice php personalizzato, in altre parole {$ v.fieldid}. Ho trovato alcuni post che fanno riferimento a $ this -> _ tpl_vars [somevar] per get variables smarty quando sono all'interno dei tag {php}, ma non sembra funzionare con foreach.
Mi rendo conto che usare i tag {php} in smarty è contro-intuitivo per l'integer concetto di smarty e mi piace totalmente zoppo, ma ho le mie ragioni. Grazie per l'aiuto!
cambia $ myfieldid = {$ v.fieldid}
a
$ myfieldid = $ v ['fieldid'];
a proposito, quello che stai facendo è il male!
Sebbene si tratti di argomenti vecchi, sono riuscito a risolverlo unendo un po 'di suggerimenti di Bingy.
Per prima cosa prendi la variabile smarty in php usando get_template_vars e poi prendi il valore dell'arrays.
$v = $this->get_template_vars('v'); $myfieldid = $v['fieldid'];
O:
$myfieldid = $this->_tpl_vars['v']['fieldid'];
Se stai utilizzando PHP già in un model smarty, perché non implementare foreach come loop PHP e non smarty loop?