zoukankan      html  css  js  c++  java
  • Thinkphp增加操作(Controller到模型Model的逻辑)

    一、控制器逻辑处理
     public function add(){
          if(IS_POST){
              $model=D('Goods');
              if($model->create(I('post.'),1)){
                  if($model->add()){
                      $this->success('添加成功',U('add'));
                      exit;
                  }
              }
              $error=$model->getError();
              $this->error($error);
          }
    $this->show();
      }


    二模型负责数据部分

    知识一:数据的验证查考手册:http://document.thinkphp.cn/manual_3_2.html#auto_validate
    
    
    知识二生产缩略图:http://document.thinkphp.cn/manual_3_2.html#image
    // 在添加时调用create方法时允许接收的字段
    protected $insertFields=array('goods_name','price','goods_desc','is_on_sale');
    // 定义表单验证的规则,控制器中的create方法时用
    protected $_validate=array(
       array('goods_name','require','商品名不能为空',1),
       array('goods_name','1,45','商品名为1到45个字符',1,'length'),
       array('price','currency','价格必须是货币格式', 1),
       array('is_on_sale', '0,1', '是否上架只能是0,1两个值', 1, 'in'),
    );
    protected function _before_insert(&$data,$option){
         $data['addtime']=time();
       if( isset($_FILES['logo']) && $_FILES['logo']['error'] == 0){
          $rootPath = C('IMG_rootPath');
          $upload = new ThinkUpload(array(
             'rootPath' => $rootPath,
          ));// 实例化上传类
          $upload->maxSize = (int)C('IMG_maxSize') * 1024 * 1024;// 设置附件上传大小
          $upload->exts = C('IMG_exts');// 设置附件上传类型
          /// $upload->rootPath = $rootPath; // 设置附件上传根目录
          $upload->savePath = 'Goods/'; // 图片二级目录的名称
          // 上传文件
          $info   =   $upload->upload();
          if(!$info)
          {
             // 先把上传失败的错误信息存到模型中,由控制器最终再获取这个错误信息并显示
             $this->error = $upload->getError();
             return FALSE; // 返回控制器
          }
          else
          {
             $logoName = $info['logo']['savepath'] . $info['logo']['savename'];
             // 拼出缩略图的文件名
             $smLogoName = $info['logo']['savepath'] . 'thumb_' .$info['logo']['savename'];
             // 生成缩略图
             $image = new ThinkImage();
             // 打开要处理的图片
             $image->open($rootPath.$logoName);
             $image->thumb(150, 150)->save($rootPath.$smLogoName);
             // 把图片的表单放到表单中
             $data['logo'] = $logoName;
             $data['sm_logo'] = $smLogoName;
          }
       }
    }


  • 相关阅读:
    vscode 简介
    TypeScriot 深入
    TypeScript 三斜线指令
    Mysql基础(二十二):表操作:创建,删除,修改,查询表
    Mysql基础(十):函数(四)分组函数
    Mysql基础(九):函数(三)流程控制函数(IF/CASE WHEN)
    Mysql基础(七):函数(一)常见函数/单行函数分类/数学函数/日期函数/其他函数
    Mysql基础(六):sql查询(六)分页查询/联合查询
    Mysql基础(五):sql查询(五)子查询
    Mysql基础(四):sql查询(四)连接查询
  • 原文地址:https://www.cnblogs.com/yexiangwang/p/4928623.html
Copyright © 2011-2022 走看看