홈 페이지에 임의의 제품을 표시하는 사용자 지정 모듈 (확실한 지침에서 복사 붙여 넣기)을 만들려고합니다. 나는 Hello World에서 시작했다. 그것은 좋았다. 하지만 홈 페이지에 제품 표시에 대한 추가 코드를 추가하면 다음과 같은 오류가 나타납니다.치명적인 오류 : getName() 멤버 함수 호출 magento
Fatal error: Call to a member function getName() on a non-object in /opt/lampp/htdocs/magento/app/code/local/Magentotutorial/Definitivehello/Block/Randomproducts.php on line 12
여기에 무슨 잘못된 사람이 말해 줄 수 /app/code/local/Magentotutorial/Definitivehello/Block/Randomproducts.php
<?php
class Magentotutorial_Definitivehello_Block_Randomproducts
extends Mage_Core_Block_Template
{
protected function _toHtml()
{
$randProdModel = Mage::getModel('Magentotutorial_Definitivehello/Randomproducts');
$randProducts = $randProdModel->getRandomProducts();
$html = "<ul>";
foreach ($randProducts as $product) {
$name = $product->getName();
$price = number_format($product->getPrice(), 2);
$imageLink = $this->helper('catalog/image')->init($product, 'thumbnail')->resize(100,100);
$productLink = $this->helper('catalog/product')->getProductUrl($product);
$html .= "<p><a href='$productLink'><img src='$imageLink' alt='$name'/></a><br/> $name <br/> $price </p>";
}
$html .= "<ul>";
return $html;
}
}
내 코드를 간다. 감사합니다
여기 GetRandomProducts 내 코드()
<?php
class Magentotutorial_Definitivehello_Model_Randomproducts
extends Mage_Core_Model_Abstract
{
public function getRandomProducts($maxCount = 3)
{
$randProducts = array();
$allProducts = array();
$productCollection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->getItems();
foreach ($productCollection as $id => $data) {
//print_r($data); exit;
$allProducts[] = $data;
}
$productIds = array_keys($allProducts);
$totalProductIds = count($productIds);
for ($i=0; $i<$maxCount; $i++) {
$randIndex = rand(0,$totalProductIds);
$randProductId = $productIds[$randIndex];
$randProducts[] = $allProducts[$randProductId];
}
return $randProducts;
}
}
크리스탈 공은 깨진 : 여기
는 getRandomProduct 방법의 더 간단 구현입니다. 코드 업로드. –