Perché Magento è in cerca di questo file come modello di risorse?'Impossibile aprire il flusso ... nessun file del genere'

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

  •  12-12-2019
  •  | 
  •  

Domanda

Sto cercando di creare un modello per la prima volta in Magento - il modello di risorsa è Mygroup_Mymodule_Model_Resource_Link

Il modello alias che ho usato è mygroup_mymodule/link

Sto cercando di chiamare $myVar = Mage::getModel('mygroup_mymodule/link') ma ricevo questo errore:

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

Questo è vero: là è nessun file lì o in app/code/local/Mygroup/Mymodule/Resource/Model/Link.php, ma non so perché magento pensa che ci dovrebbe essere.

La mia struttura della cartella è:

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

Ho anche un aiutante e un controller nel modulo (come puoi vedere nel file di configurazione), ma non penso che sia pertinente qui.

Grazie mille per qualsiasi aiuto!

Sto usando CE 1.9.0.1

È stato utile?

Soluzione

Sembra che tu ti manca una definizione class nel tuo modello di risorsa config:

        <mygroup_mymodule_resource>
            <class>Mygroup_Mymodule_Model_Resource</class>
            <entities>
                <link>
                    <table>mygroup_mymodule_link</table>
                </link>
            </entities>
        </mygroup_mymodule_resource>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top