Domanda

Sto cercando di estrarre i dati da una tabella. Per fare questo ho usato

mage::getModel('module/model')->getData

questo ha restituito un array vuoto, ma non riesco a capire il motivo per cui la tabella che chiamo contiene i dati.

C'è una discrepanza tra questo modello

class Ps_Prefs_Model_Prefsformelements
extends Mage_Core_Model_Abstract
{
protected function _construct()
{
    $this->_init('ps_prefs/prefsformelements');
}

}

class Ps_Prefs_Model_Resource_Prefsformelements
extends Mage_Core_Model_Resource_Db_Abstract
{
protected function _construct()
{
    $this->_init('ps_prefs/prefsformelements', 'idform_elements');
}
}

class Ps_Prefs_Model_Resource_Prefsformelements_Collection
extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
protected function _construct()
{
    $this->_init('ps_prefs/prefsformelements');
}
}

e altri modelli nel mio modulo. Che si trova nella parte descripency namespace_module/... della chiamata. come si può vedere questo modello utilizza namespace_module/... mentre il mio altri modelli funzionano bene con appena module/... ho provato eseguire il codice di cui sopra utilizzando solo module/... ma ottengo il can't retrieve entity config errore, ma se si tenta di eseguire l'altro utilizzando questo namespace_module/... ho iniziare a gettare errori Perché?

Avevo considerato la mia configurazione, ma se questo è il caso perché sto non ottenere gli errori quando uso namespace_module/... e perché abituato funzionare quando lo faccio sono conformi agli altri modelli?

===

Modifica

===

<config>
...
  <global>        
    <models>
        <prefs>
            <class>Ps_Prefs_Model</class>
            <resourceModel>prefs_resource</resourceModel>
        </prefs>

        <prefs_resource>
            <class>Ps_Prefs_Model_Resource</class>
            <entities>
                <prefs>
                    <table>prefcentre</table>
                </prefs>
                <prefsemail>
                    <table>prefcentre_options</table>
                </prefsemail>
                <prefsform>
                    <table>pref_form_elements</table>
                </prefsform>
            </entities>
        </prefs_resource>
    </models>
  ...
</global>
...
</config>
È stato utile?

Soluzione

Penso che il problema è che non si dispone di una definizione per la prefs/prefsformelements tavolo. Se si guarda a come l'init per la risorsa funziona prende il seguente:

/**
 * Standard resource model initialization
 *
 * @param string $mainTable
 * @param string $idFieldName
 * @return Mage_Core_Model_Resource_Abstract
 */
protected function _init($mainTable, $idFieldName)
{
    $this->_setMainTable($mainTable, $idFieldName);
}

Quindi, guardando a questo e la tua Config.xml non trovi il tavolo che le partite prefsformelements ma il tuo hanno altri che si potrebbe avere confuso i nomi per.

<prefsformelements>
    <table>pref_form_elements</table>
</prefsformelements>

Altri suggerimenti

Usa Mage :: getModel invece di mago :: getModel.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top