mage :: getModel ( '/ module modèle') -> getData retourne un tableau vide
-
16-10-2019 - |
Question
Je suis en train de tirer des données d'une table. Pour ce faire, je l'ai utilisé
mage::getModel('module/model')->getData
a retourné un tableau vide, mais je ne peux pas comprendre pourquoi comme la table, je fais appel contient des données.
Il y a une différence entre ce modèle
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');
}
}
et d'autres modèles dans mon module. Que réside descripency dans la partie namespace_module/...
de l'appel. comme vous pouvez voir ce modèle utilise namespace_module/...
alors que mes autres modèles fonctionnent très bien avec juste module/...
J'ai essayé exécuter le code ci-dessus en utilisant seulement module/...
mais je reçois le can't retrieve entity config
d'erreur, mais si je tente d'exécuter l'autre en utilisant ce namespace_module/...
-je commencer à jeter des erreurs pourquoi?
Je considérais ma config, mais si tel est le cas, pourquoi je ne reçois pas des erreurs lors de l'utilisation namespace_module/...
et pourquoi l'habitude de fonctionner quand je le rendre conforme aux autres modèles?
===
EDIT
===
<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>
La solution
Je pense que le problème est que vous ne disposez pas d'une définition de la table prefs/prefsformelements
. Si vous regardez la façon dont l'initialisation de la ressource fonctionne, il prend les éléments suivants:
/**
* 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);
}
Alors regarder cela et votre config.xml vous manquez la table qui prefsformelements
matchs mais ont d'autres votre que vous pourriez avoir mélangé les noms pour.
<prefsformelements>
<table>pref_form_elements</table>
</prefsformelements>
Autres conseils
Utilisez Mage :: getModel au lieu de MAGE :: getModel.