PHP的ECSHOP商城的改造成MVC添加商品功能总结
原始的ECSHOP商城不是MVC的架构,改造成MVC架构.
admin后台 Platform =back,登录页面进去是index.php,里面是一个框架集frameset,上面是top,html,
左边是menu.html,滚动条drag.html,右边是main.html,都放在back/view下面,
menu.html里面的
的添加商品href的action是
-------------
<ul id=
"menu-ul">
<li name=
"menu" key=
"02_cat_and_goods" class=
"explode">
商品管理 <ul>
<li
class=
"menu-item"><a target=
"main-frame" href=
"goods.php?act=list">商品列表</a></li>
<li
class=
"menu-item"><a target=
"main-frame" href=
"index.php?p=back&c=Goods&a=add">添加新商品</a></li>
-------------
修改后是调用控制器c=Goods,View=add.html,m=GoodsModel,
View=add.html的FORM里面有 添加商品的超链接a href里面 a=insert,控制器c=Goods,样式CSS可以不管,直接用原来的就行。
-------------
back/view/goods_add.html
<!-- tab body -->
<div id=
"tabbody-div">
<form name=
"theForm" method=
"post" action=
"index.php?p=back&c=Goods&a=insert" enctype=
"multipart/form-data">
点击submit按钮后POST提交了表单到 $_POST 数组里面,form表单的action属性是就会自动跳去执行=
"index.php?p=back&c=Goods&a=insert"
UPLOAD做成了一个工具类
class放在framwork框架的tool目录里面,用作商品图的上传处理。
GoodsController会调用UPLOAD.
class.php
-------------
back/controller/GoodsController.
class.php
---
/**
* 后台的商品相关操作控制器类
*/
class GoodsController extends PlatformController {
/**
* 商品添加表单
*/
public function addAction() {
require CURRENT_VIEW_PATH .
'goods_add.html';
}
/**
* 商品插入
*/
public function insertAction() {
$data[
'goods_name'] = $_POST[
'goods_name'];
$data[
'shop_price'] = $_POST[
'shop_price'];
$data[
'goods_desc'] = $_POST[
'goods_desc'];
$data[
'goods_number'] = $_POST[
'goods_number'];
$data[
'is_on_sale'] = isset($_POST[
'is_on_sale']) ?
'1' :
'0';
$data[
'goods_promote'] = isset($_POST[
'goods_promote']) ? implode(
',', $_POST[
'goods_promote']) :
'';
$m_goods = Factory::M(
'GoodsModel');
if ($m_goods->insertGoods($data)) {
$
this->_jump(
'index.php?p=back&c=Goods&a=list');
}
else {
$
this->_jump(
'index.php?p=back&c=Goods&a=add',
'添加失败:失败原因');
}
}
public function listAction() {
echo
'Goods:list';
}
}
-------------
back/model/GoodsModel.
class.php
/**
* 后台 商品表的操作模型
*/
class GoodsModel extends Model {
protected $_logic_table =
'goods';
/**
* 插入商品
* @param $data array,关联数组字段与值
* @return bool
*/
public function insertGoods($data) {
$data[
'create_admin_id'] = $_SESSION[
'admin'][
'admin_id'];
$escape_data = $
this->_escapeStringAll($data);
$sql = sprintf(
"INSERT INTO $this->_table VALUES (null, %s, %s, '', %s, %s, %s, %s, %s, %s)", $escape_data[
'goods_name'], $escape_data[
'shop_price'], $escape_data[
'goods_image_ori'], $escape_data[
'goods_desc'], $escape_data[
'goods_number'], $escape_data[
'is_on_sale'], $escape_data[
'goods_promote'], $escape_data[
'create_admin_id']);
return $
this->_dao->query($sql);
}
}