有关Magento和相关产品的帮助
我有一个客户产品页面,它位于catalog/product/view.phtml页面旁边。除了一些小的例外,它基本上与那个页面相同。它基本上是一个“当日产品”类型的页面,因此我不能将其与常规产品页面结合,因为我必须从数据库中获取数据并执行加载以获取产品信息有关Magento和相关产品的帮助,magento,Magento,我有一个客户产品页面,它位于catalog/product/view.phtml页面旁边。除了一些小的例外,它基本上与那个页面相同。它基本上是一个“当日产品”类型的页面,因此我不能将其与常规产品页面结合,因为我必须从数据库中获取数据并执行加载以获取产品信息 $_product = Mage::getModel('catalog/product')->load($row['productid']); 长话短说,除了相关产品之外,一切都正常(包括所有子html块) 加载后,我将产品保存到注册
$_product = Mage::getModel('catalog/product')->load($row['productid']);
长话短说,除了相关产品之外,一切都正常(包括所有子html块)
加载后,我将产品保存到注册表中
Mage::register('product', $_product);
然后尝试使用以下内容加载相关产品:
echo $this->getLayout()->createBlock('catalog/product_view')->setTemplate('catalog/product/list/related.phtml')->toHtml();`
所有这些都会返回错误:
Fatal error: Call to a member function getSize() on a non-object in catalog/product/list/related.phtml on line 29`,
第29行是
<?php if($this->getItems()->getSize()): ?>`.
`。
任何帮助加载相关文件的信息都将被告知。我没有完全理解您的意图,但我知道您为什么会出现错误。您正在创建其类别名/类为的块
catalog/product_view
Mage_Catalog_Block_Product_View
但您将此块的模板设置为
catalog/product/list/related.phtml
库存catalog/product/list/related.phtml
模板构建为仅与catalog/product\u list\u related
块一起使用,而不是与catalog/product\u视图
块一起使用
如果查看与catalog/product\u list\u相关的
块(这是与Mage\u catalog\u Block\u product\u list\u相关的
)的类定义,可以看到有一个getItems()
方法
public function getItems()
{
return $this->_itemCollection;
}
返回一个集合。集合是在\u prepareData
方法中设置的
protected function _prepareData()
{
$product = Mage::registry('product');
/* @var $product Mage_Catalog_Model_Product */
$this->_itemCollection = $product->getRelatedProductCollection()
...
此集合从不使用目录/产品\u视图
块进行设置,这就是为什么会出现错误
在上面的代码中,如果切换到创建与目录/产品列表相关的块,则错误应该消失 我不太明白你想做什么,但我知道你为什么会犯错误。您正在创建其类别名/类为的块
catalog/product_view
Mage_Catalog_Block_Product_View
public function relatedproductsAction(){
$this->loadLayout();
$relatedBlock = "";
$rec_prod_id = Mage::getSingleton('checkout/session')->getLastAddedProductId(true);
$_product = Mage::getModel('catalog/product')->load($rec_prod_id);
Mage::register('product', $_product);
$relatedBlock = $this->getLayout()->createBlock('catalog/product_list_related')->setTemplate('catalog/product/related.phtml')->toHtml();
echo $relatedBlock;
exit;
}
但您将此块的模板设置为
catalog/product/list/related.phtml
库存catalog/product/list/related.phtml
模板构建为仅与catalog/product\u list\u related
块一起使用,而不是与catalog/product\u视图
块一起使用
如果查看与catalog/product\u list\u相关的
块(这是与Mage\u catalog\u Block\u product\u list\u相关的
)的类定义,可以看到有一个getItems()
方法
public function getItems()
{
return $this->_itemCollection;
}
返回一个集合。集合是在\u prepareData
方法中设置的
protected function _prepareData()
{
$product = Mage::registry('product');
/* @var $product Mage_Catalog_Model_Product */
$this->_itemCollection = $product->getRelatedProductCollection()
...
此集合从不使用目录/产品\u视图
块进行设置,这就是为什么会出现错误
在上面的代码中,如果切换到创建与目录/产品列表相关的块,则错误应该消失
public function relatedproductsAction(){
$this->loadLayout();
$relatedBlock = "";
$rec_prod_id = Mage::getSingleton('checkout/session')->getLastAddedProductId(true);
$_product = Mage::getModel('catalog/product')->load($rec_prod_id);
Mage::register('product', $_product);
$relatedBlock = $this->getLayout()->createBlock('catalog/product_list_related')->setTemplate('catalog/product/related.phtml')->toHtml();
echo $relatedBlock;
exit;
}
在将产品添加到购物车之后,通过ajax调用获取相关块的html。可能会相对有帮助
在将产品添加到购物车之后,通过ajax调用获取相关块的html。可能会相对有帮助。仅供参考。如果您将一行缩进四个字符,您将获得代码格式,这是在这些部分发布代码示例的首选方式。这就是编辑的原因。我试过了,但没用。这就是我在累的时候做这件事的收获。仅供参考。如果您将一行缩进四个字符,您将获得代码格式,这是在这些部分发布代码示例的首选方式。这就是编辑的原因。我试过了,但没用。这就是我累的时候做这件事得到的。