2010-10-27 2 views
0

J'ai écrit un module pour ajouter mes propres événements, et dans la page d'accueil je voudrais montrer seulement les derniers événements. Donc, dans ce cas, je dois ajouter un ordre pour interroger mais je ne pourrais pas faire cela, il jette toujours une erreur fatale.Demande de base de données Magento Custom Module

C'est ce que j'ai fait.

$_offers = Mage::getSingleton('offerings/offerings')->getCollection(); 

Cela renvoie tous les enregistrements, ici je pourrais pouvoir définir les options de filtrage, mais je ne pouvais pas ajouter ordre de tri comme celui-ci

$_offers = Mage::getModel('offerings/offerings')->getCollection() 
      ->addAttributeToSort('offerings_id', 'DESC') 
      ->setPageSize(5) 
      ->setPage(1, 5); 

ou même en utilisant Mage :: getSingleton. Quel est le problème ici. S'il vous plaît aidez-moi

+1

À quelle classe s'étend votre collection d'offres? Est-ce basé sur EAV? Aussi, quelle est l'erreur fatale jetée? – clockworkgeek

+0

il ne prolonge pas la classe EAV et donc je ne pourrais pas utiliser la méthode du filtre de tri. il jette erreur fatale: méthode addAttributeToSort couldnot find ... – Elamurugan

Répondre

2

Je ne l'ai pas mis dans le temps de tester, mais je soupçonne que vous devez faire quelque chose comme ceci:

$_offers = Mage::getModel('offerings/offerings')->getCollection() 
      ->setOrder('offerings_id', 'DESC') 
      ->setPageSize(5); 

Comme indiqué la méthode EAV addAttributeToSort() ne fonctionnera pas ici. Pas plus que setPage() mais setPageSize() est tout aussi bon.

Il existe de nombreux tutoriels et guides pour apprendre ce genre de choses. Alan knowledgebase articles sont la ressource faisant autorité sur le sujet, vous feriez bien de lire et de pratiquer tout cela.

0

Inclure un message d'erreur et les gens peuvent commencer à vous aider.

Je suppose que vous avez utilisé Module Creator pour créer votre module, ce qui vous donne un modèle et une collection non-eav par défaut. La méthode addAttributeToSort n'existe que pour les collections EAV.

Il y a plus d'informations sur vos différentes options de tri ici

Magento get a product collection in an arbitrary order

+0

exactement, vous avez raison. Utilisé le créateur de module et il ne prolonge pas les classes d'EAV, ainsi comment pourrais-je utiliser la requête pour le trier. Merci – Elamurugan

Questions connexes