在长期的 ecshop二次开发中 我慢慢喜欢上了简单的php开发模式!可能是因为我最早是做前端开发的 ,php+smarty这种简单的组合让我更喜欢!要实现什么功能 只需要写个函数在 includes中 就可以轻松的引用了!
这些年 陆陆续续接触了很多PHP的框架,包括 ci symfony zf2 yii等等 甚至国产的thinkphp~~~ 对php的框架 我一直持观望的态度!也经常看到论坛里面 很多人为了证明某个框架更牛叉吵得面红耳赤。感觉比较可笑!我深信 每一种新的技术的产生 都是为了解决某类问题。
接触laravel之后 我很快喜欢上了这个php的框架!给人眼前一亮的感觉。基于稳定的symfony组件 加上非常容易上手 很快 我就想用laravel重写一遍 ecshop的前台所有文件!甚至我们下一步的所有php的项目都想换成这个框架!
php的ORM组件一直是我非常关注的!symfony里的doctrine 虽然也不错 但是太庞大 感觉不是很适合用在ecshop里面!使用完laravel的 Eloquent ORM后,感觉非常好!而且也比较轻量级!所以很快 我就用到了ecshop中!
首先 单独下载 Eloquent ORM
我们使用composer来安装 建立一个composer.json 文件
{ "require": { "illuminate/database": "*" } }
然后运行:composer install
然后就是等待 下载完成!
下载了一堆文件 ,截图如下:
主要的文件都在vendor里面 只需要引用这个文件夹即可
我们创建一个 database.php文件 文件内容见上面的截图!非常简单!
然后 我们开始在 ecshop中使用Eloquent ORM 来简化我们的ecshop开发!
比如:我想在ecshop后台增加一个财务管理记录!用来记录我们每天的收入记录!
我们把vendor和database.php 放到 includes目录下 通过如下代码来引用Eloquent ORM
include_once(ROOT_PATH .'includes/database.php');
简单说下 ecs_cw这个数据表的字段:
CREATE TABLE IF NOT EXISTS `ecs_cw` ( `id` int(10) NOT NULL AUTO_INCREMENT, `cw_name` varchar(255) NOT NULL, `price` decimal(10,1) NOT NULL, `cat_id` int(10) NOT NULL, `mw_date` int(10) NOT NULL, `kh_id` int(10) NOT NULL, `cw_tag` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
也就主要的几个字段
id 收入编号
cw_name 收入记录名称
price 收入金额
cat_id 收入分类编号
mw_date 收入记录日期
kh_id 客户编号
cw_tag 收入标签,用于标记记录是否作废
cw.php里面 我们创建Cw类 通过这个类来操作sql 彻底告别在php代码中混入sql的混乱状态!!!
use Illuminate\Database\Eloquent\Model as mywebphpORM; class Cw extends mywebphpORM { public $timestamps = false; //如果table之前设置了前缀 可以直接写 cw protected $table = 'ecs_cw'; //如果主键不是id 可以单独指定 //protected $primaryKey = 'cw_id'; }
说说最常见的CRUD操作
//增加
if($_REQUEST['act'] == 'add'){ $cw_name = trim($_POST['cw_name']); $price = trim($_POST['price']); $cat_id = intval($_POST['cat_id']); $mw_date = trim($_POST['mw_date']); $mw_date = strtotime($mw_date); $kh_id = intval($_POST['kh_id']); $cw = new Cw(); $cw->cw_name = $cw_name; $cw->price = $price; $cw->cat_id = $cat_id; $cw->mw_date = $mw_date; $cw->kh_id = $kh_id; $cw->save(); $id = $cw->id; if($id > 0){ $info = '添加成功!'; }else{ $info = '添加失败!'; } //模板赋值 $smarty->assign('info',$info); $smarty->display('wyzx/cw_info.htm'); }
//编辑修改
elseif($_REQUEST['act'] == 'edit'){ $id = intval($_GET['id']); $row = Cw::find($id); $row['cat_name'] = mw_get_cat_name($row['cat_id']); $row['mw_date_s'] = date('Y-m-d',$row['mw_date']); $row['kh'] = Cw::find($id)->kh; $kh_list = Kh::all(); $smarty->assign('cat_list' ,mw_cat_list()); $smarty->assign('kh_list',$kh_list); $smarty->assign('row',$row); $smarty->display('wyzx/cw_edit.htm'); }
编辑确认
elseif($_REQUEST['act'] =='edit_insert'){ //把$_POST 专成变量 extract($_POST); $mw_date = strtotime($mw_date); $row = Cw::find($id); $row->cw_name = $cw_name; $row->price = $price; $row->cat_id = $cat_id; $row->mw_date = $mw_date; $row->kh_id = $kh_id; $row->cw_tag = $cw_tag; if($row->save()){ $info = '编辑成功!'; } else{ $info = '修改失败!'; } $smarty->assign('info' ,$info); $smarty->display('wyzx/cw_info.htm'); }
删除
elseif($_REQUEST['act'] == 'del'){ $id = intval($_GET['id']); $cw = Cw::find($id); if($cw->delete()){ $info = '成功删除!'; } else{ $info = '删除失败!'; } $smarty->assign('info' ,$info); $smarty->display('wyzx/cw_info.htm'); }
其他的更多orm操作可以参考 Eloquent手册
附件里面包含了Eloquent组件 单独下载包
http://laravel.com/docs/eloquent
相关推荐
使用者几乎可以在3几分钟简单的设置一下就可以拥有一个网上商店系统,所以很多的B2C站点都选择了使用ECShop网上商店系 统,但是有时候我们需要做一些ecshop本来没有的功能或者前端展示,这时候就需要我们自己去进行...
三十二、二次开发技术共享 后台邮件群发共享 100 三十三、ecshop内页调用友情链接 100 三十四、项目要求在后台商品分类添加图片的功能。 102 三十五、分类按照拼音第一字母排序显示实现 102 三十六、获取分类的一级...
ecshop模板开发,ecshop模板二次开发
ECshop二次开发
教程名称:[南大科技]Ecshop二次开发视频课程目录:【】1 Ecshop入门【】2~4部分 实战到精通【】5[更新]Smarty【】6 [更新]微信公众号和ectouch【】07 [更新]Ecshop基本操作【】08 [更新]ecshop使用手册【】09 [更新...
ECSHOP二次开发教程开发手册
ecshop二次开发必备ecshop函数列表大全
这是ECSHOP二次开发视频,讲得还算可以,坚持看完应该对您有所帮助。 所有链接在TXT文本中,用迅雷下载即可。
ECShop二次开发思想,pdf格式。提供二次开放思想
ECshop二次开发,包括后台帮助文档,二次开发设计的文件
ecshop开发视频详解(30课),ecshop二次开发视频详解(30课)。希望对大家有用。文件链接全部放在了TXT文件中,下载后用迅雷下载即可。可以在淘宝上买个1分钱的迅雷VIP账号,这样下载速度会快很多。
ecshop2.73的后台所有功能描述,有助于二次开发
这个功能主要是ecshop格式化商品价格
ecshop开发 ecshop二次开发资料 函数说明及修改
ecshop入门学习资料,结合后盾网的模板的视频学习可以达到更好的效果
ecshop最全二次开发文档
三十二、二次开发技术共享 后台邮件群发共享 100 三十三、ecshop内页调用友情链接 100 三十四、项目要求在后台商品分类添加图片的功能。 102 三十五、分类按照拼音第一字母排序显示实现 102 三十六、获取分类的一级...
ecshop 开发函数整理,免费共享,谢谢大家