[code
1、
\think\Route::resource('admin/category','admin/Category');
2、模型
class Category extends Model
{
public function addCat($data){
return $this->insert($data);
}
public function getTopCat(){
return $this->where('pid',0)->select();
}
public function getCats(){
return $this->select();
}
public function getCat($id){
return $this->where('id',$id)->find();
}
public function upCat($data,$id){
return $this->where('id',$id)->update($data);
}
public function delCat($id){
$cat = $this->where('pid',$id)->find();
if($cat){
return json(['status'=>'fail','msg'=>'此分类下还有子分类,不能删除']);
}
$res = $this->where('id',$id)->delete();
if($res){
return json(['status'=>'success','msg'=>'删除成功']);
}else{
json(['status'=>'fail','msg'=>'删除失败']);
}
}
public function getSubCats(){
return $this->where('pid','<>',0)->select();
}
}
3、控制器
namespace app\admin\controller;
use app\admin\controller\ba
use think\Request;
use app\admin\model\Category as categoryModel;
class Category extends ba
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
$categoryModel = new categoryModel;
$cats = $categoryModel->getCats();
$cats = $this->getTree($cats);
$this->assign('cats',$cats);
return $this->fetch('list');
}
private function getTree($data,$pid=0,$level=0){
static $list = [];
foreach($data as $k=>$v){
if($v['pid']==$pid){
$v['level'] = $level;
$list[] = $v;
unset($v[$k]);
$this->getTree($data,$v['id'],$level+1);
}
}
return $list;
}
/**
* 显示创建资源表单页.
*
* @return \think\Response
*/
public function create()
{
$categoryModel = new categoryModel;
$top_cats = $categoryModel->getTopCat();
$this->assign('top_cats',$top_cats);
return $this->fetch('add');
}
/**
* 保存新建的资源
*
* @param \think\Request $request
* @return \think\Response
*/
public function save(Request $request)
{
$data = $request->param();
$categoryModel = new categoryModel;
$res = $categoryModel->addCat($data);
if($res){
return $this->success('添加分类成功','/admin/category');
}else{
return $this->success('添加分类失败','/admin/category');
}
}
/**
* 显示指定的资源
*
* @param int $id
* @return \think\Response
*/
public function read($id)
{
//
}
/**
* 显示编辑资源表单页.
*
* @param int $id
* @return \think\Response
*/
public function edit($id)
{
$categoryModel = new categoryModel;
$cat = $categoryModel->getCat($id);
$top_cats = $categoryModel->getTopCat();
$this->assign('top_cats',$top_cats);
$this->assign('cat',$cat);
return $this->fetch('edit');
}
/**
* 保存更新的资源
*
* @param \think\Request $request
* @param int $id
* @return \think\Response
*/
public function update(Request $request, $id)
{
$data = $request->except('_method');
$categoryModel = new categoryModel;
$res = $categoryModel->upCat($data,$id);
if($res){
return $this->success('更新分类成功','/admin/category');
}else{
return $this->success('更新分类失败','/admin/category');
}
}
/**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
public function delete($id)
{
$categoryModel = new categoryModel;
$res = $categoryModel->delCat($id);
return $res;
}
}
4、list.html
<div class="panel admin-panel">
<div class="panel-head"><strong class="icon-reorder"> 内容列表</strong></div>
<div class="padding border-bottom">
<button type="button" class="button border-yellow" on
</div>
<table class="table table-hover text-center">
<tr>
<th width="5%">ID</th>
<th width="15%">分类名称</th>
<th width="10%">操作</th>
</tr>
{volist name="cats" id="vo"}
<tr>
<td>{$i}</td>
<td>{$vo->level|str_repeat='--',###}{$vo->cat_name}</td>
<td><div class="button-group"> <a class="button border-main" href="/admin/category/{$vo->id}/edit"><span class="icon-edit"></span> 修改</a>
<a class="button border-red" href="ja
</tr>
{/volist}
</table>
</div>
<sc
function delCat(id){
la
$.ajax({
type:'delete',
url: '/admin/category/'+id,
dateType:'json',
success:function(res){
if(res.status=='success'){
la
}else{
la
}
location.href="/admin/category";
}
});
});
}
</sc
5、edit.html
<div class="panel admin-panel margin-top">
<div class="panel-head" id="add"><strong><span class="icon-pencil-square-o"></span>添加内容</strong></div>
<div class="body-content">
<form method="get" class="form-x" action="/admin/category/{$cat->id}">
<input type="hidden" name="_method" value="put">
<div class="form-group">
<div class="label">
<label>上级分类:</label>
</div>
<div class="field">
<select name="pid" class="input w50">
{if ($cat->pid==0)}
<option value="0">顶级分类</option>
{else/}
{volist name="top_cats" id="vo"}
<option value="{$vo->id}" {$vo->id==$cat->pid?'selected':''}>{$vo->cat_name}</option>
{/volist}
{/if}
</select>
</div>
</div>
<div class="form-group">
<div class="label">
<label>分类名称:</label>
</div>
<div class="field">
<input type="text" class="input w50" name="cat_name" value="{$cat->cat_name}" />
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label></label>
</div>
<div class="field">
<button class="button bg-main icon-check-square-o" type="submit"> 提交</button>
</div>
</div>
</form>
</div>
</div>
][/code]
最佳答案