2012-11-02 70 views
7

我想要傳遞塊中的值,但我無法獲得期望的結果。
出事了,我不知道爲什麼。
我嘗試在xml文件中的代碼"block type="multibanners/multibanners" name="multibanners" category_id="5" alias="multibanners"
爲了得到結果,我使用了echo $this->getCategoryId()getData('category_id')
我搜索,但所有的時間相同的代碼。
任何人都可以幫助我什麼是錯誤的代碼。如何將塊中的變量傳遞給magento中的phtml

謝謝。

回答

9

你可以設置你的變量是這樣的:

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

和retreive這樣說:

$this->getCategoryId(); 
+0

感謝您的回答爲我工作尼基。你能告訴我如何動態地傳遞價值? –

+0

動態地通過php? –

+0

讓我解釋一下我嘗試做的事情。我正在使用我的自定義代碼訪問類別庫中的一些數據。如果您看到上述代碼,我現在可以獲取id = 5的結果category_id,如何將此值設置爲xml中的動態值,從magento的任何位置傳遞該值?有什麼辦法 –

1

或者在你的控制器,後

$this->loadLayout(); 

但在此之前

使用此代碼:

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

對不起Raif你的代碼不工作me.AS我得到的結果$ this-> getCategoryId(); –

+0

你需要提供更多的上下文,你從哪裏調用$ this-> getCategoryId()**?什麼時候 ?我的解決方案將允許您在由模塊呈現的模板phtml中執行$ this-> getCategoryId()(如果它是模板塊)。 –

+0

是的我試圖訪問我的前端控制器呈現的phtml文件中的代碼。我在模板folder.right中訪問muultibanner.phtml中的代碼?我將你的代碼添加到我的前端控制器的索引函數中。 –

3

Mage_Core_Block_Template::assign()被使用的是

例如,在breadcrumbs.phtml模板文件作出Mage_Page_Block_Html_Breadcrumbs::_toHtml() + $crumbs變種直接調用

相關問題