【问题标题】:How to get single product from category id in magento? [closed]如何从magento中的类别ID中获取单个产品? [关闭]
【发布时间】:2014-05-13 09:14:27
【问题描述】:
<?php

    $categoryid = 64;

    $category = new Mage_Catalog_Model_Category();
    $category->load($categoryid);
    $collection = $category->getProductCollection();
    $collection->addAttributeToSelect('*');

    foreach ($collection as $_product) { ?>

    <a href="<?php echo $_product->getProductUrl() ?>"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(200); ?>" width="200" height="200" alt="" /></a> <a href="<?php echo $_product->getProductUrl(); ?>"><?php echo $_product->getName(); ?></a>

<?php } ?>

【问题讨论】:

  • 这样的问题在这里无法回答。你必须精确地知道你想要什么。

标签: magento


【解决方案1】:

试试这个

$category = Mage::getModel('catalog/category')->load(64);
$collection = $category->getProductCollection()->addAttributeToFilter('status', 1);
$collection->getSelect()->limit(1);
foreach($collection  as $product)
{
    echo "<a href=".$product->getProductUrl().">".$product->getName()."</a><br>";
}

【讨论】:

  • 从category id获取单品是什么意思?
  • 他只想展示一个属于类别 id 64 的产品
  • 那会是哪个产品?
  • @Slimshadddyyy,那是个谜 :)
【解决方案2】:

尝试关注

$category=Mage::getModel('catalog/category')->load($category_id);
$products = $category->getProductCollection()
//->addAttributeToSelect('*') // add all attributes - optional
->addAttributeToSelect(array('name','entity_id','price','small_image','frontend_name'))
->setPageSize(1)
->setOrder('created_at', 'DESC'); //sets the order by created_at

【讨论】:

    【解决方案3】:
    <?php
    foreach($this->getStoreCategories() as $_category)
    {
        $cur_category=Mage::getModel('catalog/category')->load($_category->getId());
        $collectionnn = Mage::getModel('catalog/product')
                                  ->getCollection()
                                  ->joinField('category_id','catalog/category_product', 'category_id', 'product_id = entity_id',null, 'left')
                                  ->addAttributeToSelect('*')
                                  ->addAttributeToFilter('category_id',array('in' => $cur_category->getId()));        
                        foreach($collectionnn as $product)
                        {
                            echo "<a href=".$product->getProductUrl().">".$product->getName()."</a><br>";
                            break;
                        }
    }            
    ?>
    

    【讨论】:

    • 你用过break;你不认为它会对性能产生影响吗?您也可以使用“限制”。也不希望使用 ->addAttributeToSelect('*')
    • 如何在此代码中添加限制。请告诉我
    • @DushyantJoshi 这怎么可能是正确答案?
    • @Slimshadddyyy。这就是为什么我做了-1。而且他也没有具体说明您在评论中提到的他想要哪种产品
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多