2012-08-16 70 views
0

希望大家都做得很好。我是magento的新手。我正在研究magento模塊。我想在管理中使用網格,但我需要使用集合。我創建了一些集合,並且沒有成功地訪問它們中的任何一個。我想知道我錯在哪裏。讓我與你分享我的問題。magento:創建您自己的收藏

我的配置文件塊

<models> 

    <exporter> 
     <class>World_Exporter_Model</class> 
     <!-- 
     need to create our own resource, cant just 
     use core_mysql4 
     --> 
     <resourceModel>exporter_mysql4</resourceModel> 
    </exporter> 
<exporter_mysql4> 
     <class>World_Exporter_Model_Mysql4</class> 
     <entities> 
      <exporter> 
         <table>profiles</table> 
      </exporter> 
     </entities> 

</exporter_mysql4> 
</models> 

我的模型

class World_Exporter_Model_Mysql4_Profiles extends Mage_Core_Model_Mysql4_Abstract 
{ 
public function _construct() 
{ 

    $this->_init('exporter/profiles', 'profile_id'); 
} 
} 

我的收藏

class World_Exporter_Model_Mysql4_Profiles_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract 
{ 
public function _construct(){ 
    parent::_construct(); 
    $this->_init('exporter/profiles'); 
} 
} 

如果你想幫助我。我很滿。

(由得到回答後)....

$model = Mage::getResourceModel('exporter/profiles'); 

    // $model = Mage::getModel('exporter/profiles');   

    $collection = $model->getCollection();   

致命錯誤:調用未定義方法World_Exporter_Model_Mysql4_Profiles :: getCollection()

// $model = Mage::getResourceModel('exporter/profiles'); 

     $model = Mage::getModel('exporter/profiles');   

     $collection = $model->getCollection(); 

一個:5:{I:0; s:47:Can not retrieve entity config:exporter/profiles「; i:1; s:2542:

#0 \ app \ code \ core \ Mage \ Core \ Model \ Resource.php(272):法師:: throwException('無法檢索...')

#1 \應用\代碼\核心\法師\核心\型號\資源\ DB \ Abstract.php(284):Mage_Core_Model_Resource-> getTableName時( '出口/ PROFIL ...')

#2 \程序\代碼\核心\法師\核心\型號\資源\ DB \ Abstract.php(247):Mage_Core_Model_Resource_Db_Abstract-> getTable( '曲線')

但我有在DB

表 「譜」

我會感謝您的幫助...

回答

4

所以最後由我自己得到的答案,因爲我沒有得到足夠的迴應,所以我必須自己去做,非常感謝我的問題的唯一回應者,實際上他的回答幫助我解決了這個問題,所以也得到了信任。

現在的解決方案

<exporter> 
    <class>World_Exporter_Model</class> 

    <resourceModel>exporter_mysql4</resourceModel> 
</exporter> 
<exporter_mysql4> 
    <class>World_Exporter_Model_Mysql4</class> 
    <entities> 
     <!-- This portion makes it stop working --> 
     <exporter> 
        <table>profiles</table> 
     </exporter> 
     <!-- This portion makes it stop working --> 

     <!-- Replace the above highlighted portion with this portion --> 
     <profiles> 
        <table>profiles</table> 
     </profiles> 

     <!-- Replace the above highlighted portion with this portion --> 

    </entities> 

</exporter_mysql4> 
</models> 

所以在上面的代碼(XML),我們更換了配置文件

,然後編寫代碼

class World_Exporter_Model_Profiles extends Mage_Core_Model_Abstract 
{ 
    public function _construct() 
    { 
     // now profiles in this will catch the table name within profiles tags 
     $this->_init('exporter/profiles'); 
    } 
} 

出口標籤它開始爲我工作。

1

看起來你錯過了模型。如果你在你的config xml中查看,你調用你的模型是你的資源模型。您仍然需要定義實際模型。同樣,在你的配置XML,這種模式已經被聲明:<class>World_Exporter_Model</class>

基本類應該是這樣的:

class World_Exporter_Model_Profiles extends Mage_Core_Model_Abstract 
{ 
    public function _construct() 
    { 

     $this->_init('exporter/profiles'); 
    } 
} 

,並應在/app/code/local/World/Exporter/Model/Profiles.php

+0

對於遲到的回覆,我很抱歉,因爲我是在度假。無論如何,我非常感謝您提供的幫助。但我認爲我們錯過了一些東西。我在問題中添加了這個問題,由於字符限制,我無法在這裏發帖。請幫我通過它,如果我要求一些明顯的PLZ不介意它,因爲我是新的magento .. – fkabeer 2012-08-23 07:38:31