zoukankan      html  css  js  c++  java
  • PHP的ECSHOP商城的改造成MVC添加商品功能总结

    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 {
                //失败,给出错误提示,返回到add添加动作
                $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'];
            //插入到goods表
            // 保证数据转义后:
            $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);
        }
    }
        
        
        
          
  • 相关阅读:
    Appium环境搭建
    mysql数据库在Linux下安装与配置
    各模拟器adb连接端口
    MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded
    使用pycharm创建django项目
    win10安装docker步骤
    Linux常用命令
    LoadRunner HTTP+Json 接口性能测试
    API性能测试基本性能指标及要求
    Widows自带系统监控工具——24小时监控服务器性能
  • 原文地址:https://www.cnblogs.com/blacop/p/6811655.html
Copyright © 2011-2022 走看看