¿Por qué es Magento buscando este archivo como mi modelo de recurso?'Failed to open stream...No existe el fichero'

magento.stackexchange https://magento.stackexchange.com//questions/45054

  •  12-12-2019
  •  | 
  •  

Pregunta

Estoy tratando de crear un modelo por primera vez en Magento - el modelo de recursos se Mygroup_Mymodule_Model_Resource_Link

El alias de modelo que he utilizado es mygroup_mymodule/link

Estoy tratando de llamar a la $myVar = Mage::getModel('mygroup_mymodule/link') pero estoy recibiendo este error:

Warning: include(Mage/Mygroup/Mymodule/Resource/Model/Link.php): failed to open stream: No such file or directory in /[root]/lib/Varien/Autoload.php on line 93

Esto es cierto:allí es archivo no existe, o en app/code/local/Mygroup/Mymodule/Resource/Model/Link.php, pero no sé por qué Magento piensa que debería ser.

Mi estructura de la carpeta es:

...
- Model/
    - Link.php
    - Resource/
        - Link.php
        - Link/
            - Collection.php
...

app/code/local/Mygroup/Mymodule/etc/config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Mygroup_Mymodule>
            <version>0.0.6</version>
        </Mygroup_Mymodule>
    </modules>

    <frontend>
        <routers>
            <downloadable>
                <use>standard</use>
                <args>
                    <modules>
                        <Mygroup_Mymodule before="Mage_Downloadable">Mygroup_Mymodule</Mygroup_Mymodule>
                    </modules>
                </args>
            </downloadable>
        </routers>
    </frontend>

    <global>
        <helpers>
            <downloadable>
                <rewrite>
                    <download>Mygroup_Mymodule_Helper_Download</download>
                </rewrite>
            </downloadable>
        </helpers>

        <models>

            <mygroup_mymodule>

                <class>Mygroup_Mymodule_Model</class>

                <resourceModel>mygroup_mymodule_resource</resourceModel>

            </mygroup_mymodule>

            <mygroup_mymodule_resource>

                <entities>

                    <link>

                        <table>mygroup_mymodule_link</table>

                    </link>

                </entities>

            </mygroup_mymodule_resource>

        </models>

        <resources>

            <mygroup_mymodule_setup>

                <setup>

                    <module>Mygroup_Mymodule</module>

                    <class>Mage_Core_Model_Resource_Setup</class>

                </setup>

                <connection>
                    <use>core_setup</use>
                </connection>

            </mygroup_mymodule_setup>

        </resources>


    </global>
</config>

app/code/local/Mygroup/Mymodule/Model/Link.php:

<?php
class Mygroup_Mymodule_Model_Link extends Mage_Core_Model_Abstract
{

    protected function _construct()
    {
        $this->_init('mygroup_mymodule/link');
    }
    ...

app/code/local/Mygroup/Mymodule/Model/Resource/Link.php:

<?php
class Mygroup_Mymodule_Model_Resource_Link
    extends Mage_Core_Model_Resource_Db_Abstract
{
    protected function _construct()
    {
        $this->_init('mygroup_mymodule/link', 'entity_id');
    }
}

app/code/local/Mygroup/Mymodule/Model/Resource/Link/Collection.php:

<?php
class Mygroup_Mymodule_Model_Resource_Link_Collection
    extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
    protected function _construct()
    {
        parent::_construct();

        $this->_init(
            'mygroup_mymodule/link',
            'mygroup_mymodule/link'
        );
    }
}

También tengo un Ayudante y un controlador en el módulo (como se puede ver en el fichero de configuración), pero no creo que lo que es relevante aquí.

Muchas gracias por la ayuda!

Estoy usando CE 1.9.0.1

¿Fue útil?

Solución

Parece como si te falta un class definición de su modelo de recurso de config:

        <mygroup_mymodule_resource>
            <class>Mygroup_Mymodule_Model_Resource</class>
            <entities>
                <link>
                    <table>mygroup_mymodule_link</table>
                </link>
            </entities>
        </mygroup_mymodule_resource>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top