Thinkphp增加操作(Controller到模型Model的逻辑)
2015-11-01 20:42
661 查看
一、控制器逻辑处理
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 \Think\Upload(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 \Think\Image(); // 打开要处理的图片 $image->open($rootPath.$logoName); $image->thumb(150, 150)->save($rootPath.$smLogoName); // 把图片的表单放到表单中 $data['logo'] = $logoName; $data['sm_logo'] = $smLogoName; } } }
相关文章推荐
- php中对MYSQL操作之事务控制,回滚
- php mysql事务处理回滚操作
- FTP上传助手1.1 [免费版]
- PHP之闭包详解
- php面向对象(二)
- php面向对象(一)
- PHP实现QQ快速登录
- laravel中ubuntu下执行php artisan migrate总是报错
- php实战之使用递归读取商品无限分类
- vsftpd说明,有用,转了
- PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
- 重读php文档
- ThinkPHP学习实践(二)单字母函数用法
- DATASNAP中间件调用带OUTPUT参数的存储过程
- 关于php的register_globals和magic_quotes_gpc参数配置
- OS X 10.11下PHPstorm php-cgi not found 并且访问项目目录502
- phpstrom+xdebug 配置
- 关于php-echo原理
- sae中配置weiphp,修复图片上传问题
- PHP命名空间解析规则