定义:对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
举例:织一件带花样图案的毛衣,其实只需要两根竹钎和一条毛线,织女甚至可以心不在焉地织!我终于恍然大悟,我们用惯了各种复杂SQL语句和DBMS提供的专有技术,是因为我们的业务模型和业务逻辑的设计实在太差,甚至没有设计!我们是被迫用千百根针和千百条线痛苦地编制只有我们自己才能理解的图案。
ORM不但适用于小项目,更适用于大项目。越是复杂的项目,受益越明显。
Magento模型通过load(),sava(),delete()方法,提供基础的Create,Read,Update和Delete功能。在上面的控制器方法中,我们已经使用了load()方法。 当传递一个参数到load()方法中,该方法会 返回 与该参数相对应的id字段(在模型资源中设置)的 一条记录 。
$blogpost->load(1);
save()方法允许你 插入新数据到模型中,或更新已经存在的数据。添加如下代码到控制器中。
然后在浏览器中访问以下地址,
http://example.com/weblog/index/createNewPost
这时你会看到数据库表中新增了一条数据,然后在控制器中加入 编辑功能。
最后,加入下列代码,实现 删除功能。
举例:织一件带花样图案的毛衣,其实只需要两根竹钎和一条毛线,织女甚至可以心不在焉地织!我终于恍然大悟,我们用惯了各种复杂SQL语句和DBMS提供的专有技术,是因为我们的业务模型和业务逻辑的设计实在太差,甚至没有设计!我们是被迫用千百根针和千百条线痛苦地编制只有我们自己才能理解的图案。
ORM不但适用于小项目,更适用于大项目。越是复杂的项目,受益越明显。
ORM的实质就是用一个类对应一个表,类的属性代表数据表里面的字段,类的方法操作数据表(CRUD操作)
在Magento应用中:
Magento的CRUD操作Magento模型通过load(),sava(),delete()方法,提供基础的Create,Read,Update和Delete功能。在上面的控制器方法中,我们已经使用了load()方法。 当传递一个参数到load()方法中,该方法会 返回 与该参数相对应的id字段(在模型资源中设置)的 一条记录 。
$blogpost->load(1);
save()方法允许你 插入新数据到模型中,或更新已经存在的数据。添加如下代码到控制器中。
public function createNewPostAction() {
$blogpost = Mage::getModel('weblog/blogpost');
$blogpost->setTitle('Code Post!');
$blogpost->setPost('This post was created from code!');
$blogpost->save();
echo 'post created';
}
然后在浏览器中访问以下地址,
http://example.com/weblog/index/createNewPost
这时你会看到数据库表中新增了一条数据,然后在控制器中加入 编辑功能。
public function editFirstPostAction() {
$blogpost = Mage::getModel('weblog/blogpost');
$blogpost->load(1);
$blogpost->setTitle("The First post!");
$blogpost->save();
echo 'post edited';
}
最后,加入下列代码,实现 删除功能。
public function deleteFirstPostAction() {
$blogpost = Mage::getModel('weblog/blogpost');
$blogpost->load(1);
$blogpost->delete();
echo 'post removed';
}