Magento Comment passer des données à partir d'un contrôleur à un modèle?
J'ai un contrôleur de l'action qui se connecte à un flux XML et d'apporter des données à partir d'une application tierce.
Maintenant, je veux que ces données soient présentées dans mon Magento page du produit. Contrôleur de l'action appelée comme un appel ajax par un parent modèle de données et de fichiers doit être rendu à l'un des enfants modèles.
Je sais que si j'avais un Modèle qui peut parler à un pâté de maisons et les données peuvent être disponibles au niveau du gabarit. Mais vous ne savez pas comment cela peut être fait grâce à l'action d'un contrôleur. Jusqu'à présent j'ai réussi à vider les données de l'enfant modèle mais le rendu HTML. (Je ne veux pas construire le code HTML dans le contrôleur et le dump pour le modèle que c'est une mauvaise pratique je pense)
Qui suit est mon contrôleur de l'action et de la 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();
}
Vous devez vous connecter pour publier un commentaire.
En plus d'asif réponse, on peut aussi faire :
Dans le contrôleur:
et puis dans le fichier phtml:
$layout = $this->getLayout();
retourne un objet videecho $this->getLayout()->createBlock('mymodule/reviews')->setTemplate('mymodule/reviews.phtml')->toHtml();
$this->getLayout()->createBlock('mymodule/reviews')->setFeedback($feedback);
$block = $this->getLayout()->createBlock('mymodule/reviews')->setTemplate('mymodule/reviews.phtml');
tout bon maintenantvous pouvez utiliser
ces données seront disponibles pour le modèle, qui vient dans le cadre de cette action, et vous pouvez obtenir que les données dans le modèle en tant que ...