如何在magento中将变量从块传递到phtml

如何在magento中将变量从块传递到phtml,magento,block,php,Magento,Block,Php,我想从块中传递值,但无法获得所需的结果。出现了一些问题,我不知道原因。 我尝试xml文件中的代码“block type=“multibanners/multibanners”name=“multibanners”category\u id=“5”alias=“multibanners”。为了得到结果,我使用了echo$this->getCategoryId()和getData('category\u id') 我一直在搜索相同的代码。有人能帮我找出代码有什么问题吗 谢谢。您可以这样设置变量: &

我想从块中传递值,但无法获得所需的结果。
出现了一些问题,我不知道原因。
我尝试xml文件中的代码
“block type=“multibanners/multibanners”name=“multibanners”category\u id=“5”alias=“multibanners”

为了得到结果,我使用了
echo$this->getCategoryId()
getData('category\u id')

我一直在搜索相同的代码。
有人能帮我找出代码有什么问题吗


谢谢。

您可以这样设置变量:

<block type="multibanners/multibanners" name="multibanners" alias="multibanners">
<action method="setData"><name>category_id</name><value>5</value></action>
</block>
$this->getCategoryId();

或者在控制器中,在

 $this->loadLayout();
但之前

 $this->renderLayout();
使用此代码:

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

Mage\u Core\u Block\u模板::assign()
就是为此而设计的


Mage\u Page\u Block\u Html\u Breadcrumbs中使用的示例::\u toHtml()
+直接调用
$crumbs
breadcrumbs.phtml模板文件中的var

谢谢你的回答,niki。你能告诉我如何动态传递值吗?通过php动态传递值吗?让我解释一下我尝试做什么。我正在使用自定义代码访问一些基于类别的数据。如果你看到上面的代码e我现在可以获取id为5的结果类别\u id,如何在xml中动态设置该值并从magento中的任何位置传递该值?无论如何,您都不能在xml中动态设置它(因为magento中的xml是静态的),如果代码不适用于我,则需要将其分配给phpSorry raid中的块对象。当我在$this->getCategoryId()上获得结果时,您需要提供更多上下文,您正在从何处?何时?调用$this->getCategoryId(),我的解决方案将允许您在块呈现的模板phtml中执行$this->getCategoryId()(如果是模板块)。是的,我正在尝试访问前端控制器呈现的phtml文件中的代码。我正在访问template folder.right?中Muultibaner.phtml中的代码,并将您的代码添加到前端控制器的索引函数中。