Mage :: GetModel ('Module/Model')-> GetData Devuelve una matriz vacía
-
16-10-2019 - |
Pregunta
Estoy tratando de extraer datos de una tabla. Para hacer esto, he usado
mage::getModel('module/model')->getData
Esto ha devuelto una matriz vacía, pero no puedo averiguar por qué, como la tabla, llamo, contiene datos.
Hay una discrepancia entre este modelo
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');
}
}
y otros modelos en mi módulo. Esa descripción se encuentra en el namespace_module/...
parte de la llamada. Como puede ver, este modelo usa namespace_module/...
mientras que mis otros modelos funcionan bien con solo module/...
He intentado ejecutar el código anterior usando solo module/...
Pero recibo el error can't retrieve entity config
Pero si trato de ejecutar el otro usando esto namespace_module/...
Empiezo a lanzar errores ¿Por qué?
Había considerado mi configuración, pero si ese es el caso, ¿por qué no recibo errores cuando uso? namespace_module/...
¿Y por qué no funcionará cuando lo hago ajustarse a los otros modelos?
===
EDITAR
===
<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>
Solución
Creo que el problema es que no tienes una definición para la tabla prefs/prefsformelements
. Si observa cómo funciona el inicio para el recurso, se necesita lo siguiente:
/**
* 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);
}
Entonces, mirando esto y su config.xml, le falta la tabla que coincida prefsformelements
Pero tienes otros para los que podrías haber mezclado los nombres.
<prefsformelements>
<table>pref_form_elements</table>
</prefsformelements>
Otros consejos
Use Mage :: GetModel en lugar de Mage :: GetModel.