Pergunta

A partir disso Alterar o nome da tabela para coleções de grade administrativa tópico, uma dúvida surgiu.

Se estivermos usando 2 tabelas em nosso módulo personalizado, como saber qual tabela deve ser usada no método de coleta de preparação?

Aguardando ansiosamente pela sua resposta!

Foi útil?

Solução

Modelo múltiplo para um módulo com uma tabela para cada modelo

A criação de vários modelos para um modelo é fácil. define multiple entities para o seu Module Model resourceModel e isso corresponding entity entity_id Table.

Exemplo:

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

Código completo do modelo para Módulo:

<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>

Este modelo oferece dois modelos para um módulo

  1. Mage::getModel('custommodule/custommoduletwo') // como entidades é custommoduletwo
  2. Mage::getModel('custommodule/custommoduleone')

Processo de definição de classe

De acordo com o magento para each Model necessidade necessária para criar Correspondente Modelo, recurso, coleção aula

Classe de modelo para modelo Mage::getModel('custommodule/custommoduleone')

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

}

Classe de recursos

App/código/comunidade/AMIT/Custommodule/Model/Resource/CustommoduleOne.php - Veja mais em:

<?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 coleção:

O caminho do arquivo de coleção é Collection.php app/código/comunidade/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');    
    }
}

Segundo modelo:

Classe de modelo

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

}

Classe de recursos

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 coleção:

O caminho do arquivo de coleção é Collection.php app/código/comunidade/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');    
    }
}

NOTA: Fornecerei várias tabelas para um modelo em breve

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top