天天看點

magento -- 建立帶資料庫表的自定義子產品

如果你想在magento中建立一個自定義子產品,并且需要存儲和使用自定義資料,下面就是你需要的步驟。我将假定你已經知道關于magento子產品,它們是什麼以及如何建立它們。此外,我也假定你已經知道在magento子產品的基本結構。

下面這段放到你的config.xml的适當位置

         <global>

<ymodel>

<class>ynamespace_ymodule_model</class>

<resourcemodel>quotes_mysql4</resourcemodel>

</ymodel>

<quotes_mysql4>

<class>ynamespace_ymodule_model_mymodel</class>

<entities>

<mymodel>

<table>ymodel_ytable</table>

</mymodel>

</entities>

</quotes_mysql4>

</global> 

然後建立子產品

<?php

class ynamespace_ymodule_model_mymodel extends mage_core_model_abstract

{

public function _construct()

parent::_construct();

$this->_init('ymodel/mymodel');

}

正如你可以看到在這個類的構造中它初始化了在配置檔案中定義的子產品。由于模型使用資源(resources),你現在需要建立一個資源子產品。

class ynamespace_ymodel_model_mysql4_ymodel extends mage_core_model_mysql4_abstract

$this->_init('ymodel/mymodel', 'id');

是以,使用這種資源,您現在可以通路表并添加/修改。但是你不能顯式建立一個此類的對象做到這一點。

$model=mage::getmodel("ymodel/mymodel")

->setname("subesh")

->setlastname("pokhrel")

->save();

這樣會在資料庫建立一行資料,其中name 和lastname 是表的字段。

下面的代碼可以用來編輯一行資料。

$model=mage::getmodel("ymodel/mymodel")->load($id)

->setlastname("pokharel")

->save(); 

現在要查詢資料庫還需要一個過程,在此之前,我先描述下集合(collection)。想象一下集合是一個包含對象的數組,當你從資料庫查詢到結果,結果中的每一行就是不同的對象。下面是建立一個集合(collection)的代碼

class ynamespace_ymodel_model_mysql4_mymodel_collection extends mage_core_model_mysql4_collection_abstract

查詢這個表的所有行

$allcollection=mage::getmodel("ymodel/mymodel")->getcollection(); 

如果需要的話,你可以給上面的代碼增加一些過濾條件

要拿到單獨的行你可以對集合做循環

        foreach($allcollection as $objrow){

print_r($objrow);

源文:http://www.bageshsingh.com/bagesh-blog/2010/04/using-custom-table-for-custom-module-in-magento/