我已经在magento中添加了自定义产品关系。我正在使用目录列表模板在自定义控制器上显示该关系的集合。
protected function _getProductCollection()
{
if($_GET['product_id'])
{
if(isset($_GET['p'])){
$curpage= $_GET['p'];
}else{
$curpage = 1 ;}
if(isset($_GET['limit'])){
$limit= $_GET['limit'];
}else{
$limit = 12 ;}
$productid=$_GET['product_id'];
$product = Mage::getModel('catalog/product_link')
->getCollection()
->addFieldToFilter('link_type_id', 6)
->addFieldToFilter('product_id',$productid)
->load();
$LinkedProduct=$product->getData();
foreach($LinkedProduct as $LinkedProducts)
{ $LinkedProductId[]= $LinkedProducts['linked_product_id']; }
$productIds = array_values($LinkedProductId);
$_productCollection=Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*')
->addAttributeToFilter('entity_id', array('in' => $productIds))
->addAttributeToSort(trim($_GET['order']),$_GET['dir'])
->setCurPage($curpage)
->setPageSize($limit)
->load();
//echo $_productCollection->getSelect() ;
$this->_productCollection=$_productCollection;
}
return $this->_productCollection;
}
但按职位排序并不奏效。你能告诉我怎样才能实现这个目标。
答案 0 :(得分:0)
根据Mage_Catalog_Model_Resource_Product_Collection,有一个setOrder($attribute, $dir = 'desc')
方法可以完成这项工作。
顺便说一下,你应该不在Magento上使用$_GET
,更喜欢
$this->getRequest()->getParam('your-param-key', 'any default value if wanted')