Frage

Ich versuche, Daten aus einer Tabelle zu ziehen. Um dies zu tun, habe ich verwendet

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

Dies hat ein leeres Array zurückgegeben, aber ich kann nicht herausfinden, warum, wie die Tabelle, die ich aufrufe, Daten enthält.

Es gibt eine Diskrepanz zwischen diesem Modell

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');
}
}

und andere Modelle in meinem Modul. Diese Beschreibung liegt in der namespace_module/... Teil des Anrufs. Wie Sie sehen können, verwendet dieses Modell verwendet namespace_module/... während meine anderen Modelle mit nur gut funktionieren module/... Ich habe versucht, den oben genannten Code mit nur module/... Aber ich bekomme den Fehler can't retrieve entity config Aber wenn ich versuche, den anderen mit diesem auszuführen namespace_module/... Ich fange an, Fehler zu werfen, warum?

Ich hatte meine Konfiguration in Betracht gezogen, aber wenn dies der Fall ist, bekomme ich keine Fehler, wenn ich benutze namespace_module/... Und warum funktioniert es nicht, wenn ich es den anderen Modellen entspricht?

===

BEARBEITEN

===

<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>
War es hilfreich?

Lösung

Ich denke, das Problem ist, dass Sie keine Definition für die Tabelle haben prefs/prefsformelements. Wenn Sie sich ansehen, wie die Init für die Ressource funktioniert, wird Folgendes angelegt:

/**
 * 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);
}

Wenn Sie sich dies und Ihre config.xml ansehen, fehlen Ihnen die Tabelle, die übereinstimmt prefsformelements Aber du hast andere, für die du die Namen vielleicht durcheinander gebracht hast.

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

Andere Tipps

Verwenden Sie Magier :: GetModel anstelle von Magier :: getModel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top