2015-07-09 2 views
0

У меня проблема с Magento. Я использую Magento ver. 1.9.1.1.Magento 1.9.1.1 - Дублированные результаты отображаются

Проблема в том, что я вижу повторяющиеся результаты для страницы, содержащей список заданий (ее страница найма). Проблема заключается в том, что каждый из результатов дублируется. Раньше я никогда не делал реального развития Magento, и это похоже на крутую кривую обучения.

Я проверил содержимое и только что был введен.

Это код обижая:

//I tried this line with no effect 
//$collection = Mage::getModel('cms/page')->getCollection()->distinct(true); 

// $collection contains the duplicate results 
$collection = Mage::getModel('cms/page')->getCollection(); 

Может кто-нибудь дать мне какие-либо идеи о том, как я могу решить эту проблему? Даже идея о том, где искать код, была бы хорошей.

Я обнаружил две структуры данных при повторении через коллекцию. Это _origData и _Data. Не знаю, почему его использование обоих из них, но мне удалось исправить/взломать его, выполнив:

if($key == "_origData"){ 
    continue; 
} 

Конечно, есть лучший способ сделать это?

Спасибо заранее :)

ответ

0

Вы пробовали применять фильтры в вашей коллекции?

Смотрите ниже:

$getStoreId = Mage::app()->getStore()->getId(); 
$collection = Mage::getModel('cms/page')->getCollection() 
       ->addStoreFilter($getStoreId) 
       ->addFieldToFilter('is_active', 1); 

Ресурсы:

0

Вы можете увидеть детали кода на упомянутой выше модели class.But если вы хотите пользовательский код, который вы может попробовать следующее:

$collection = Mage::getModel('cms/page')->getCollection(); 
$collection->getSelect() 
    ->join(
     array('s' => $collection->getTable('cms/page_store')), 
     's.page_id = main_table.page_id AND s.store_id != 0', 
     array('store_id') 
    ) 
    ->columns(array('stores_count' => new Zend_Db_Expr('COUNT(s.store_id)'))) 
    ->group('main_table.page_id') 
    ->having('stores_count = ?', 1) 
    ->having('s.store_id = ?', $storeId) 
; 
Смежные вопросы