Warum sucht Magento nach dieser Datei als mein Ressourcenmodell?'Konnte nicht geöffnet werden stream...No solche Datei'
-
12-12-2019 - |
Frage
Ich versuche zum ersten Mal in Magento ein Modell zu erstellen - das Ressourcenmodell ist Mygroup_Mymodule_Model_Resource_Link
Der Modellalias, den ich verwendet habe, ist mygroup_mymodule/link
Ich versuche anzurufen $myVar = Mage::getModel('mygroup_mymodule/link')
aber ich bekomme diesen Fehler:
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
Das ist wahr:dort is keine Datei dort oder in app/code/local/Mygroup/Mymodule/Resource/Model/Link.php
, aber ich weiß nicht, warum Magento denkt, dass es so sein sollte.
Meine Ordnerstruktur ist:
...
- 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'
);
}
}
Ich habe auch einen Helfer und einen Controller im Modul (wie Sie in der Konfigurationsdatei sehen können), aber ich denke, das ist hier nicht relevant.
Vielen Dank für jede Hilfe!
Ich benutze CE 1.9.0.1
Lösung
Es sieht so aus, als ob dir ein fehlt class
definition in Ihrer Ressourcenmodellkonfiguration:
<mygroup_mymodule_resource>
<class>Mygroup_Mymodule_Model_Resource</class>
<entities>
<link>
<table>mygroup_mymodule_link</table>
</link>
</entities>
</mygroup_mymodule_resource>