2012-11-02 9 views
7

Voglio passare il valore dal blocco ma non riesco a ottenere i risultati desiderati.
Qualcosa sta andando storto che non so perché.
Provo il codice "block type="multibanners/multibanners" name="multibanners" category_id="5" alias="multibanners" nel file xml.
Per ottenere risultati ho usato echo $this->getCategoryId() e getData('category_id').
Cerco sempre lo stesso codice.
Qualcuno può aiutarmi a che cosa non va con il codice.Come passare la variabile da block a phtml in magento

Grazie.

risposta

9

È possibile impostare le variabili in questo modo:

<block type="multibanners/multibanners" name="multibanners" alias="multibanners"> 
<action method="setData"><name>category_id</name><value>5</value></action> 
</block> 

e prelevare in questo modo:

$this->getCategoryId(); 
+0

Grazie la tua risposta che lavorano per me niki. Puoi dirmi come posso passare il valore in modo dinamico? –

+0

Dinamicamente come in PHP? –

+0

Lasciatemi spiegare cosa cerco di fare. Sto accedendo ad alcuni dati sulla base di categorie usando il mio codice personalizzato. Se vedi il codice precedente posso ora recuperare result_id_file con id = 5, Come posso impostare questo valore dinamico in xml e passare quel valore da qualsiasi punto di Magento? Come in qualsiasi modo –

1

O nel controller, dopo

$this->loadLayout(); 

ma prima

uso di questo codice:

$this->getLayout()->getBlock('multibanners')->setCategoryId(42); 
+0

Mi spiace Raif il tuo codice non funziona per me.AS sto ottenendo risultati su $ this-> getCategoryId(); –

+0

È necessario fornire più contesto, si sta chiamando $ this-> getCategoryId() ** da dove **? e quando ? La mia soluzione ti permetterà di fare $ this-> getCategoryId() all'interno del template phtml che è reso dal blocco (se è un blocco template). –

+0

sì sto provando ad accedere al codice in file phtml che sono resi dal mio front controller. Sto accedendo al codice in muultibanner.phtml nel template folder.right? e aggiungo il tuo codice alla funzione indice del mio front controller. –

3

Mage_Core_Block_Template::assign() è fatto per questo

Esempio di utilizzo in Mage_Page_Block_Html_Breadcrumbs::_toHtml() + chiamata diretta di $crumbs var nel file breadcrumbs.phtml modello

Problemi correlati