首先创建模块控制文件模块名称为
Amit_Custommodule.xml at app/etc/modules/
代码
<?xml version="1.0"?>
<config>
<modules>
<Amit_Custommodule>
<codePool>community</codePool>
<active>true</active>
</Amit_Custommodule>
</modules>
</config>
和
config.xml的路径是app/code/community/Amit/Custommodule/etc/
我们定义代码池是社区,那么它的路径是 app/code/community
这里Amit文件夹是模块的命名空间,Custommodule是模块名
<?xml version="1.0" ?>
<config>
<modules>
<Amit_Custommodule>
<version>1.0.0</version>
</Amit_Custommodule>
</modules>
<global>
<models>
<custommodule>
<class>Amit_Custommodule_Model</class>
<resourceModel>custommodule_resource</resourceModel>
</custommodule>
<custommodule_resource>
<class>Amit_Custommodule_Model_Resource</class>
<entities>
<custommodule>
<table>studetn</table>
</custommodule>
</entities>
</custommodule_resource>
</models>
</global>
</config>
模型文件Custommodule.php 路径为app/code/community/Amit/Custommodule/Model 和代码
<?php
class Amit_Custommodule_Model_Custommodule extends Mage_Core_Model_Abstract
{
public function _construct()
{
$this->_init('custommodule/custommodule');
}
}
如果我们定义模型,那么我们需要定义模型Custommodule.php的资源类
资源类我的模块是Custommodule.php app/code/community/Amit/Custommodule/Model/Resource/ 和代码
<?php
class Amit_Custommodule_Model_Resource_Custommodule extends Mage_Core_Model_Resource_Db_Abstract
{
/**
* Initialize resource model
*
* @return void
*/
public function _construct()
{
$this->_init('custommodule/custommodule', 'id');
}
public function getMyCount($std)
{
$Table = Mage::getSingleton('core/resource')->getTableName('custommodule/custommodule');
$select = $this->getReadConnection()->select()
->from(
array('main_table' => $Table),
array(new Zend_Db_Expr('COUNT(main_table.id)'))
)
->where('main_table.id = :id');
$bind = array('id' => (int)$std->getId());
$counts = $this->getReadConnection()->fetchOne($select, $bind);
return intval($counts);
}
}
这两个文件构成了最终模块Mage::getModel("custommodule/custommodule")->load($primaryKeyOfTable);
现在我们需要对获取表中所有数据的模块的集合文件进行分类
集合文件路径是Collection.php app/code/community/Amit/Custommodule/Model/Resource/Custommodule 也是它的代码
<?php
class Amit_Custommodule_Model_Resource_Custommodule_Collection
extends Mage_Core_Model_Resource_Db_Collection_Abstract{
protected function _constuct(){
$this->_init('custommodule/custommodule');
}
}
还有
$Collection=Mage::getModel("custommodule/custommodule")->Collection();
foreach($Collectio as $each)
{
$each->getMyCount();
}
更多细节
http://www.amitbera.com/create-an-magento-extension-with-custom-database-table/