1 准备一张表
2 创建二级导航 添加知识, 知识列表
3 创建控制器
4 实现知识的添加功能 添加add方法 。add.html 模板
表单 注意 文件上传需要有enctype ,文件域file类型 请求类型post
5 改写add方法 处理表单提交数据
6 编写自定义模型方法
KnowledgeController控制器类
<?php
namespace Admin\Controller;
use Think\Controller;
class KnowledgeController extends Controller{
//add方法
public function add(){
//判断请求类型
if(IS_POST){
//如果是post请求
$post = I('post.');
//实例化自定义模型类
$model = D('Knowledge');
//接收数据
$result = $model -> addData($post,$_FILES['thumb']);
//判断是否成功
if($result){
//成功
$this -> success('添加成功!',U('showList'),3);
}else{
$this -> error('添加失败!');
//失败
}
}else{
//展示模板
$this -> display();
}
}
}
KnowledgeModel 模型类
<?php
namespace Admin\Model;
use Think\Model;
class KnowledgeModel extends Model{
//addData方法
public function addData($post,$file){
//判断是否有文件上传
//要求size大于0 ,或者error == 0
if($file['error'] == '0'){
//如果有文件 //需要在入口文件配置路径
//用数组接收
$cfg = array('rootPath' => WORKING_PATH . UPLOAD_ROOT_PATH);
//实现上传类
$upload = new \Think\Upload($cfg);
//上传
$info = $upload -> uploadOne($file);
//dump($info);die; //打印输出看有没有报错
if($info){
//成功之后补全字段
$post['picture'] = UPLOAD_ROOT_PATH . $info['savepath'] . $info['savename'];
//制作缩略图
//1实例化类
$image = new \Think\Image();
//2打开图片传递图片路径
$image -> open(WORKING_PATH . $post['picture']);
//3制作缩略图
$image -> thumb(100,100);
//4保存图片 传递完整路径(目录+文件名)
$image -> save(WORKING_PATH . UPLOAD_ROOT_PATH . $info['savepath'] . 'thumb' . $info['savename']);
//补全字段
$post['thumb'] = UPLOAD_ROOT_PATH . $info['savepath'] . 'thumb' . $info['savename'];
}
}
//补全字段addtime
$post['addtime'] = time();
dump($post);die;
//添加操作
return $this -> add($post);
}
}
add.html 模板
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="__ADMIN__/css/base.css" />
<link rel="stylesheet" href="__ADMIN__/css/info-reg.css" />
<title>移动办公自动化系统</title>
<style type='text/css'>
select {
background: rgba(0, 0, 0, 0) url("__ADMIN__/images/inputbg.png") repeat-x scroll 0 0;
border: 1px solid #c5d6e0;
height: 28px;
outline: medium none;
padding: 0 8px;
width: 240px;
}
.main p input {
float:none;
}
</style>
</head>
<body>
<div class="title"><h2>添加知识</h2></div>
<form action="" method="post" enctype="multipart/form-data">
<div class="main">
<p class="short-input ue-clear">
<label>标题:</label>
<input name="title" type="text" placeholder="标题..." />
</p>
<p class="short-input ue-clear">
<label>缩略图:</label>
<input name="thumb" type="file"/>
</p>
<p class="short-input ue-clear">
<label>作者:</label>
<input name="author" type="text" placeholder="作者..." />
</p>
<p class="short-input ue-clear">
<label>描述:</label>
<textarea name="description" style="font-family:Microsoft YaHei !important; font-size:14px;" placeholder="请输入描述..." ></textarea>
</p>
<p class="short-input ue-clear">
<label>内容:</label>
<textarea name="content" style="font-family:Microsoft YaHei !important; font-size:14px;" placeholder="请输入内容..." ></textarea>
</p>
</div>
<div class="btn ue-clear">
<a href="javascript:;" class="confirm" id='btnSubmit'>确定</a>
<a href="javascript:;" class="clear" id='btnReset'>清空内容</a>
</div>
</form>
</body>
<script type="text/javascript" src="__ADMIN__/js/jquery.js"></script>
<script type="text/javascript" src="__ADMIN__/js/common.js"></script>
<script type="text/javascript" src="__ADMIN__/js/WdatePicker.js"></script>
<script type="text/javascript">
$(function(){
$('#btnSubmit').on('click',function(){
$('form').submit();
});
$('#btnReset').on('click',function(){
$('form')[0].reset();
});
});
$(".select-title").on("click",function(){
$(".select-list").toggle();
return false;
});
$(".select-list").on("click","li",function(){
var txt = $(this).text();
$(".select-title").find("span").text(txt);
});
showRemind('input[type=text], textarea','placeholder');
</script>
</html>