MAGE :: getModel ('Modul/Modell')-> getData gibt ein leeres Array zurück
-
16-10-2019 - |
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>
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.