2010-12-03 39 views
5

en essayant de configurer un fichier de configuration pour un module personnalisé - ai-je besoin d'un modèle unique pour chaque 'resourceModel', ou est-il possible d'avoir plusieurs entités de table par modèle?Magento - possible d'avoir plusieurs tables pour un seul modèle?

Est-il possible d'obtenir quelque chose comme cela fonctionne:


    <config>... 
<model> 
    <namespace> 
    <class>Namespace_Module_Model</class> 
    <resourceModel>module_mysq4</resourceModel> 
    </namespace> 
    <module_mysql4> 
    <class>Namespace_Module_Model_Mysql4</class> 
    <entities> 
     <table_1> 
      <table>table_1</table> 
     </table_1> 
     <table_2> 
      <table>table_2</table> 
     </table_2> 
     <table_3> 
      <table>table_3</table> 
     </table_3> 
     ... 
    </entities> 
    </module_mysql4> 
..</config>

puis passer dynamiquement entre les tables à travers le modèle?

et connexe: Quelqu'un sait ce que les enfants possibles de la sont et leurs propriétés? J'ai vu des 'entités', des 'associations' et des 'items' - thx

Répondre

1

Thx pour la réponse & excuses si la question n'était pas claire. Après quelques heures de débogage, je l'ai travailler avec la structure suivante:


<models> 
    <modulename> 
    <class>Namespace_Modulename_Model</class> 
    <resourceModel>modulename_mysql4</resourceModel> 
    </modulename> 
    <modulename_type1> 
    <class>Namespace_Modulename_Model_Type1</class> 
    <resourceModel>modulename_mysql4</resourceModel> 
    </modulename_type1> 
    <modulename_type2> 
    <class>Namespace_Modulename_Model_Type2</class> 
    <resourceModel>modulename_mysql4</resourceModel> 
    </modulename_type2> 
    <modulename_mysql4> 
    <class>Namespace_Modulename_Model_Mysql4</class> 
    <entities> 
    <modulename> 
    <table>modulename</table> 
    </modulename> 
    <modulename_type1> 
    <table>modulename_type1</table> 
    </modulename_type1> 
    <modulename__type2> 
    <table>modulename_type2</table> 
    </modulename_type2> 
    </entities> 
    </modulename_mysql4> 

</models> 

Alors oui - il y a une entité de table unique pour chaque modèle déclaré (un modèle, une ressource), mais je l'aurais supposé que chaque modèle supplémentaire/resourceModel combinaison nécessiterait sa propre classe Model_Mysql séparée dans son propre nœud modulename_mysql4, ala:


<models> 
<modulename> 
    <class>Namespace_Modulename_Model</class> 
    <resourceModel>modulename_mysql4</resourceModel> 
</modulename> 
<modulename_type1> 
    <class>Namespace_Modulename_Model_Type1</class> 
    <resourceModel>modulename_mysql4_type1</resourceModel> 
</modulename_type1> 
    <modulename_type2> 
    <class>Namespace_Modulename_Model_Type2</class> 
    <resourceModel>modulename_mysql4_type2</resourceModel> 
</modulename_type2> 
<modulename_mysql4> 
    <class>Namespace_Modulename_Model_Mysql4</class> 
    <entities> 
    <modulename> 
    <table>modulename</table> 
    </modulename> 
    </entities> 
</modulename_mysql4> 
<modulename_mysql4_type1> 
    <class>Namespace_Modulename_Model_Mysql4_Type1</class> 
    <entities> 
    <modulename_type1> 
    <table>modulename_type1</table> 
    </modulename_type1> 
    </entities> 
</modulename_mysql4_type1> 
<modulename_mysql4_type2> 
    <class>Namespace_Modulename_Model_Mysql_Type2</class> 
    <entities> 
    <modulename_type2> 
    <table>modulename_type2</table> 
    </modulename_type2> 
    </entities> 
</modulename_mysql4_type2> 
</models> 

mais ce n'est pas le cas. J'adorerais entendre un jeu par l'explication de jeu. Merci pour l'aide!

3

Ce n'est pas vraiment clair ce que vous demandez ici. Magento a une base une ressource à une table ressource, et un une ressource à de nombreuses tables construites de manière ressource spécifique pour les modèles de style EAV.

Le scénario que vous décrivez ci-dessus n'est pas directement pris en charge par le système, mais si vous souhaitez implémenter quelque chose comme cela, rien ne vous empêche d'implémenter une ressource qui fonctionne comme vous le souhaitez.

En ce qui concerne les enfants possibles, créez le simple visionneuse de configuration described here pour obtenir une décharge de toute configuration issue de la fusion, et ensuite utiliser une visionneuse XPath pour examiner tous les nœuds (et leurs enfants) que vous êtes intéressé par

0

Ou:

<resources> 
     <modulename_setup> 
      <setup> 
       <module>modulename</module> 
      </setup> 
      <connection> 
       <use>core_setup</use> 
      </connection> 
     </modulename_setup> 
     <modulename_write> 
      <connection> 
       <use>core_write</use> 
      </connection> 
     </modulename_write> 

     <modulename_read> 
      <connection> 
       <use>core_read</use> 
      </connection> 
     </modulename_read> 
    </resources> 
+0

Cocher cette [question metaSO] (http://meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a -question) et [Jon Skeet: Coding Blog] (http://msmvps.com/blogs/jon_skeet/archive/2009/02/17/answering-technical-questions-helpfully.aspx) sur la façon de donner une réponse correcte. – Yaroslav