Perché Magento è in cerca di questo file come modello di risorse?'Impossibile aprire il flusso ... nessun file del genere'
-
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
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>
.