//添加页面 代码
结构图(0是一级分类,)
电脑配件的父类时[电脑],电脑的id是1
id 主键 | cname 分类名称 | pid 父级分类id | path 分类路径 | status 状态 |
1 | 电脑 | 0 | 0 | 1 |
2 | 电脑配件 | 1 | 0,1 | 1 |
3 | 主板 | 2 | 0,1,2 | 1 |
4 | 服装 | 0 | 0 | 1 |
5 | 女装 | 4 | 0,4 | 1 |
6 | 衬衫 | 5 | 0,4,5 | 1 |
@extends('admin.common.common')
@section('content')
//form表单
<form action="/admin/citys/store" class="layui-form" method="post">
{{ csrf_field() }}
<div class="layui-form-item">
<label class="layui-form-label">请输入</label>
<div class="layui-input-block">
<input type="text" name="cname" required autocomplete="off" placeholder="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">请选择</label>
<div class="layui-input-block">
<select name="pid" required lay-filter="aihao">
<option value="">--请选择--</option>
@foreach($data as $k=>$v)
<option value="{{ $v['id'] }}">{{ $v['cname'] }}</option>
@endforeach
<option value="">添加一级分类</option>
</select>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="demo1">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
@endsection('content')
@extends('admin.common.common')
@section('content')
<form action="/admin/citys/store" class="layui-form" method="post">
{{ csrf_field() }}
<div class="layui-form-item">
<label class="layui-form-label">请输入</label>
<div class="layui-input-block">
<input type="text" name="cname" required autocomplete="off" placeholder="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">请选择</label>
<div class="layui-input-block">
<select name="pid" required lay-filter="aihao">
<option value="">--请选择--</option>
@foreach($data as $k=>$v)
<option value="{{ $v['id'] }}">{{ $v['cname'] }}</option>
@endforeach
<option value="">添加一级分类</option>
</select>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="demo1">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
@endsection('content')
//列表页面 代码
@extends('admin.common.common')
@section('content')
<div class="page-content">
<!-- 中间层开始 -->
<xblock><button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button></xblock>
<table class="layui-table">
<thead>
<tr>
<th><input type="checkbox" name="" value="" name="box[]"></th>
<th> ID </th>
<th> PID </th>
<th> 分类名称 </th>
<th> pid父级 </th>
<th> path路径 </th>
<th> 状态 </th>
</thead>
<tbody>
@foreach($data as $v)
<tr>
<td> <input type="checkbox" value="" name="box[]"></td>
<td> {{ $v['id'] }} </td>
<td> {{ $v['pid'] }} </td>
<td> {{ $v['cname'] }} </td>
<td> pid父级 </td>
<td>{{ $v['path'] }}</td>
<td>{{ $v['status'] }}</td>
</tr>
@endforeach
</tbody>
</table>
<div id="page">{!! $data->render()!!}</div>
<!-- 中间层结束 -->
</div>
@endsection('content')
@extends('admin.common.common')
@section('content')
<div class="page-content">
<!-- 中间层开始 -->
<xblock><button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button></xblock>
<table class="layui-table">
<thead>
<tr>
<th><input type="checkbox" name="" value="" name="box[]"></th>
<th> ID </th>
<th> PID </th>
<th> 分类名称 </th>
<th> pid父级 </th>
<th> path路径 </th>
<th> 状态 </th>
</thead>
<tbody>
@foreach($data as $v)
<tr>
<td> <input type="checkbox" value="" name="box[]"></td>
<td> {{ $v['id'] }} </td>
<td> {{ $v['pid'] }} </td>
<td> {{ $v['cname'] }} </td>
<td> pid父级 </td>
<td>{{ $v['path'] }}</td>
<td>{{ $v['status'] }}</td>
</tr>
@endforeach
</tbody>
</table>
<div id="page">{!! $data->render()!!}</div>
<!-- 中间层结束 -->
</div>
@endsection('content')
//控制器中代码
/**
*共用代码提出
*
*/
public static function getCitys(){
//方式一 $data = DB::select("select id,cname,pid,path,concat(path,',',id) as path from citys");
//方式二
$data = Citys::select('id','cname','pid','path','status',DB::raw("concat(path,',',id) as paths"))
->orderBy('paths','asc')->paginate(10);
//统计字符出现的次数
foreach($data as $k => $v){
$n = substr_count($v->path,',');
$data[$k] -> cname = str_repeat('|-----',$n).$data[$k]->cname;
}
return $data;
}
/**
*共用代码提出
*
*/
public static function getCitys(){
//方式一 $data = DB::select("select id,cname,pid,path,concat(path,',',id) as path from citys");
//方式二
$data = Citys::select('id','cname','pid','path','status',DB::raw("concat(path,',',id) as paths"))
->orderBy('paths','asc')->paginate(10);
//统计字符出现的次数
foreach($data as $k => $v){
$n = substr_count($v->path,',');
$data[$k] -> cname = str_repeat('|-----',$n).$data[$k]->cname;
}
return $data;
}
//显示列表
/**
* 显示列表
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//视图
return view('admin.citys.index',['data'=>self::getCitys()]);
}
/**
* 添加
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//视图
return view('admin.citys.create',['data'=>self::getCitys()]);
}
/**
* 保存
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$citys = new Citys;
//检测顶级分类
$pid = $request -> input('pid','');
if($pid == 0){
//顶级分类
$citys -> path = '0';
}else{
//非顶级分类,查找父级
$parent_data = Citys::find($pid);
//(存储path字段) = (分级的path字段)拼上(分级的id字段)
$citys -> path = $parent_data -> path.','.$parent_data ->id;
}
$citys -> cname = $request -> input('cname','');
$citys -> pid =$pid;
//返回值
if($citys ->save()){
return redirect('/admin/citys') -> with('success','成功');
}else{
return back() -> with('error','失败');
}
}
//显示列表
/**
* 显示列表
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//视图
return view('admin.citys.index',['data'=>self::getCitys()]);
}
/**
* 添加
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//视图
return view('admin.citys.create',['data'=>self::getCitys()]);
}
/**
* 保存
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$citys = new Citys;
//检测顶级分类
$pid = $request -> input('pid','');
if($pid == 0){
//顶级分类
$citys -> path = '0';
}else{
//非顶级分类,查找父级
$parent_data = Citys::find($pid);
//(存储path字段) = (分级的path字段)拼上(分级的id字段)
$citys -> path = $parent_data -> path.','.$parent_data ->id;
}
$citys -> cname = $request -> input('cname','');
$citys -> pid =$pid;
//返回值
if($citys ->save()){
return redirect('/admin/citys') -> with('success','成功');
}else{
return back() -> with('error','失败');
}
}