tp5.0资源路由的修改功能不生效怎么办

浏览:421 发布日期:2019/12/30 分类:求助交流
tp5.0:设置的资源路由下的修改功能一直不生效,但是添加和删除的功能却可以,这是怎么回事
[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\base;
use think\Request;
use app\admin\model\Category as categoryModel;

class Category extends base
{
/**
* 显示资源列表
*
* @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" onclick="window.location.href='#add'"><span class="icon-plus-square-o"></span> 添加分类</button>
</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="javascript:void(0)" onclick="return delCat({$vo->id})"><span class="icon-trash-o"></span> 删除</a> </div></td>
</tr>
{/volist}


</table>
</div>
<script type="text/javascript">
function delCat(id){
layer.confirm('你确定要删除此分类?',function(){
$.ajax({
type:'delete',
url: '/admin/category/'+id,
dateType:'json',
success:function(res){
if(res.status=='success'){
layer.msg(res.msg,{icon:1});
}else{
layer.msg(res.msg,{icon:2});
}

location.href="/admin/category";

}

});
});
}
</script>

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]
最佳答案
评论( 相关
后面还有条评论,点击查看>>