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>
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top