码迷,mamicode.com
首页 > Web开发 > 详细

Thinkphp增加操作(Controller到模型Model的逻辑)

时间:2015-11-01 21:10:42      阅读:2403      评论:0      收藏:0      [点我收藏+]

标签:

一、控制器逻辑处理
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;
}
}
}

Thinkphp增加操作(Controller到模型Model的逻辑)

标签:

原文地址:http://www.cnblogs.com/yexiangwang/p/4928623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!