Question

De ceci Modifier le nom de la table pour les collections de grille d'administration fil, un doute est apparu.

Si nous avons utilisé 2 tables dans notre module personnalisé, comment savoir quelle table doit être utilisée dans la méthode de collecte de préparation ?

J'attends avec impatience votre réponse !

Était-ce utile?

La solution

Modèle multiple pour un module avec une table pour chaque modèle

La création de plusieurs modèles pour un modèle est facile. Vous devez define multiple entities à ton Module Model resourceModel et cela corresponding entity entity_id Table.

Exemple:

        <custommodule_resource>
            <class>Amit_Custommodule_Model_Resource</class>
            <entities>
                <custommoduleone>
                    <table>custommoduleTestOne</table>
                </custommoduleone>
        <custommoduletwo>
                    <table>custommoduleTestTwo</table>
        </custommoduletwo>
            </entities>
        </custommodule_resource>

Code de modèle complet pour le module :

<models>
    <custommodule>
    <class>Amit_Custommodule_Model</class>
    <resourceModel>custommodule_resource</resourceModel>
    </custommodule>
    <custommodule_resource>
    <class>Amit_Custommodule_Model_Resource</class>
    <entities>
        <custommoduleone>
        <table>custommoduleTestOne</table>
        </custommoduleone>
        <custommoduletwo>
        <table>custommoduleTestTwo</table>
        </custommoduletwo>
    </entities>
    </custommodule_resource>
</models>

Ce modèle vous donne deux modèles pour un module

  1. Mage::getModel('custommodule/custommoduletwo') // car les entités sont custommoduletwo
  2. Mage::getModel('custommodule/custommoduleone')

Processus de définition de classe

Selon magento pour each Model requis besoin de créer Correspondant Modèle, ressource, collection classe

Classe modèle pour modèle Mage::getModel('custommodule/custommoduleone')

<?php
class Amit_Custommodule_Model_Custommoduleone extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        $this->_init('custommodule/custommoduleone');
    }

}

Classe de ressources

App / Code / Community / AMIT / CUSTRODUDULE / MODÈLE / RESSOURCE / CUSTROMDULEOne.php - Voir plus à:

<?php
class Amit_Custommodule_Model_Resource_Custommoduleone extends Mage_Core_Model_Resource_Db_Abstract
{
    /**
     * Initialize resource model
     *
     * @return void
     */
    public function _construct()
    {
        $this->_init('custommodule/custommoduleone', 'table_Primarykey');
    }
}

Classe de collecte :

Le chemin du fichier de collection est Collection.php app/code/community/Amit/Custommodule/Model/Resource/Custommoduleone

<?php
class Amit_Custommodule_Model_Resource_Custommoduleone_Collection
extends Mage_Core_Model_Resource_Db_Collection_Abstract{
    protected function _constuct(){
        $this->_init('custommodule/custommoduleone');    
    }
}

Deuxième modèle :

Classe modèle

<?php
class Amit_Custommodule_Model_CustommoduleTwo extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        $this->_init('custommodule/custommoduletwo');
    }

}

Classe de ressources

app/code/community/Amit/Custommodule/Model/Resource/Custommoduletwo.php

<?php
class Amit_Custommodule_Model_Resource_Custommoduletwo extends Mage_Core_Model_Resource_Db_Abstract
{
    /**
     * Initialize resource model
     *
     * @return void
     */
    public function _construct()
    {
        $this->_init('custommodule/custommoduletwo', 'table_Primarykey');
    }
}

Classe de collecte :

Le chemin du fichier de collection est Collection.php app/code/community/Amit/Custommodule/Model/Resource/Custommoduletwo

<?php
class Amit_Custommodule_Model_Resource_Custommoduletwo_Collection
extends Mage_Core_Model_Resource_Db_Collection_Abstract{
    protected function _constuct(){
        $this->_init('custommodule/custommoduletwo');    
    }
}

REMARQUE : je fournirai prochainement plusieurs tables pour un modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top