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>
Était-ce utile?

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.

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