mage :: getModel ( 'modulo / modello') -> getData restituisce un array vuoto
-
16-10-2019 - |
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>
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.