2013-05-02 7 views
0

Ma requête génère de la collection de magento estMagento Collection charge à l'aide Trier par

$userModel = Mage::getSingleton('user/user')->getCollection()->addFieldToFilter('user_id', array('in' => array($User_Id))); 

SELECT `main_table`.user_name FROM `user_table` AS `main_table` WHERE (user_id IN('1', '3', '2')); 

Je veux utiliser cette requête:

SELECT `main_table`.user_name FROM `user_table` AS `main_table` WHERE (user_id IN('1', '3', '2')) ORDER BY FIELD(user_id , 1,3,2); 

Alors qu'il affiche le nom d'utilisateur dans le même ordre comme ID sont entrés. c'est-à-dire "1,3,2"

Quelle méthode est utilisée dans Magento pour charger la collection en utilisant ORDER BY?

Merci d'avance!

+0

De plus, si « Trier par » n'est pas possible dans la collecte Magento, est-il conseillé d'écrire notre propre coutume requête s'il existe plusieurs collections à charger et à modifier selon l'exigence personnalisée? – Slimshadddyyy

+0

Copie possible de: http://stackoverflow.com/questions/3158424/how-to-add-order-by-when-loading-a-magento-model – seanbreeden

+0

@seanbreeden function setOrder ($ attribute, $ dir = 'desc ') utilise le paramètre ASC ou DESC alors que ce dont je parle concerne ma fonction sql qui est ORDER BY FIELD (http://jonahellison.com/mysql-order-by-field-group_concat). Donc, est-il possible d'utiliser la fonction ci-dessus mysql à l'ordre par les données selon le besoin personnalisé d'utiliser Magento Collection? – Slimshadddyyy

Répondre

0

Vous pouvez obtenir Zend_Db_Select de Collection puis ajouter pour Zend_Db_Select comme cette question:

Zend DB Select : ORDER BY FIELD('id',some_array) - how?

+0

quelle différence cela ferait-il d'utiliser le code ci-dessus et d'utiliser le code de requête personnalisé de magento? Comment pouvons-nous exécuter plusieurs enregistrements en utilisant la méthode fetch() dans magento? – Slimshadddyyy