لماذا يبحث Magento عن هذا الملف باعتباره نموذج الموارد الخاص بي؟"فشل في فتح الدفق...لا يوجد مثل هذا الملف"
-
12-12-2019 - |
سؤال
أحاول إنشاء نموذج لأول مرة في Magento - نموذج المورد هو Mygroup_Mymodule_Model_Resource_Link
الاسم المستعار النموذجي الذي استخدمته هو mygroup_mymodule/link
أحاول الاتصال $myVar = Mage::getModel('mygroup_mymodule/link')
لكني أتلقى هذا الخطأ:
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
هذا صحيح:هناك يكون لا يوجد ملف هناك، أو في app/code/local/Mygroup/Mymodule/Resource/Model/Link.php
, لكني لا أعرف لماذا تعتقد Magento أنه يجب أن يكون هناك.
هيكل المجلد الخاص بي هو:
...
- 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'
);
}
}
لدي أيضًا مساعد ووحدة تحكم في الوحدة (كما ترون في ملف التكوين)، لكنني لا أعتقد أن هذا مناسب هنا.
شكرا جزيلا على اي مساعدة!
أنا أستخدم CE 1.9.0.1
المحلول
يبدو كما لو كنت في عداد المفقودين class
التعريف في تكوين نموذج المورد الخاص بك:
<mygroup_mymodule_resource>
<class>Mygroup_Mymodule_Model_Resource</class>
<entities>
<link>
<table>mygroup_mymodule_link</table>
</link>
</entities>
</mygroup_mymodule_resource>