gpt4 book ai didi

php - Magento 如何将数据从 Controller 传递到模板?

转载 作者:可可西里 更新时间:2023-11-01 13:07:59 24 4
gpt4 key购买 nike

我有一个连接到 XML 提要并从第三方应用程序获取一些数据的 Controller 操作。现在我希望这些数据显示在我的 Magento 产品页面中。 Controller 操作作为 ajax 调用被父模板文件调用,数据必须呈现到其中一个子模板中。

我知道如果我有一个模型,那么它可以与一个 block 对话,然后数据就可以在模板级别使用。但不确定如何通过 Controller 操作来完成。到目前为止,我设法将数据转储到子模板而不是完全呈现的 HTML。 (我不想在 Controller 中构建 HTML 并将其转储到模板,因为我认为这是不好的做法)

以下是我的 Controller Action 和getProduct

public function getFeedbackAction()
{

$url = 'http://3rd-party-domain/some-module/xmlfeed.php';

$xml_feed = simplexml_load_file($url);

foreach ($xml_feed as $key=>$feedback){
if ($key == "PRODUCT") {
$this->feedbacks[] = $feedback;
}
}

if ($this->getRequest()->getParam('type') == 'product'){
$sku = $this->getRequest()->getParam('sku');
if ( $sku != ""){
$this->getProductReviews($sku);
}
}
}

private function getProductReviews($sku){

foreach ($this->feedbacks as $feedback){
if ($feedback->PRODUCTCODE == $sku){
$productreviews[] = $feedback;
}
}

Zend_Debug::dump($productreviews);

//echo $this->getLayout()->createBlock('mymodule/reviews')->setTemplate('mymodule/reviews.phtml')->toHtml();

}

最佳答案

除了asif的回答,我们还可以做:

在 Controller 中:

$layout = $this->getLayout();
$block = $layout->getBlock('block_name');
$block->setFeedback($feedback); //magic method

然后在 phtml 文件中:

$feedback = $this->getFeedback();

关于php - Magento 如何将数据从 Controller 传递到模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21227199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com