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),你現在需要創建一個資源模塊。
<?php class Ynamespace_Ymodel_Model_Mysql4_Ymodel extends Mage_Core_Model_Mysql4_Abstract { public function _construct() { $this->_init('ymodel/mymodel', 'id'); } }
因此,使用這種資源,您現在可以訪問表並添加/修改。但是你不能顯式創建一個此類的對象做到這一點。
$model=Mage::getModel("ymodel/mymodel") ->setName("Subesh") ->setLastname("Pokhrel") ->save();
這樣會在數據庫新建一行數據,其中name 和lastname 是表的字段。
下麵的代碼可以用來編輯一行數據。
$model=Mage::getModel("ymodel/mymodel")->load($id) ->setName("Subesh") ->setLastname("Pokharel") ->save();
現在要查詢數據庫還需要一個過程,在此之前,我先描述下集合(collection)。想象一下集合是一個包含對象的數組,當你從數據庫查詢到結果,結果中的每一行就是不同的對象。下麵是新建一個集合(collection)的代碼
<?php class Ynamespace_Ymodel_Model_Mysql4_Mymodel_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract { public function _construct() { parent::_construct(); $this->_init('ymodel/mymodel'); } }
查詢這個表的所有行
$allCollection=Mage::getModel("ymodel/mymodel")->getCollection();
如果需要的話,你可以給上麵的代碼增加一些過濾條件
要拿到單獨的行你可以對集合做循環
foreach($allCollection as $objRow){ print_r($objRow); }
源文:https://www.bageshsingh.com/bagesh-blog/2010/04/using-custom-table-for-custom-module-in-magento/
最後更新:2017-04-02 06:51:17