创建资源控制器
php artisan make:controller -r
创建模型和迁移文件
php artisan make:model Cate -m
修改迁移文件创建分类表
Schema::create('cates', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string("name",60)->comment("名称");
$table->integer("pid")->default(0)->comment("上级ID");
$table->integer("sort")->default(100)->comment("排序");
$table->timestamps();
});
php artisan db:seed
路由
Route::get("/cate/index",'CateController@index')->name('cate.index');
//允许post和get同时使用
Route::match(['get','post'],"/cate/create",'CateController@create')->name('cate.create');
控制器
/**
* 分类列表
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$cate = new Cate();
$list = $cate->getcates();
return view("admin.cate.index")->with("list",$list);
}
/**
* 添加分类
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
$category = new Cate();
if($request->isMethod("POST")){
$category->name = $request->cname;
$category->sort = $request->sort;
$category->pid = $request->pid;
$res = $category->save();
if($res){
$request->session()->flash("success","添加成功");
}else{
$request->session()->flash("errormsg","用户名或密码错误");
}
return redirect('admin/cate/index');
}
$cates = $category->getcates();
return view("admin.cate.create")->with("list",$cates);
}
模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Cate extends Model
{
//获取分类列表
static public function getcates(){
$cates = self::OrderBy("sort","Desc")->OrderBy("id","Desc")->get();
$cates = self::makecates($cates);
return $cates;
}
/**
* @param $data
* @param int $pid
* @param int $level
*/
static function makecates($data,$pid=0,$level=0){
$arr = [];
foreach ($data as $item){
if($item->pid == $pid){
$item->level = $level;
$arr[] = $item;
$res = self::makecates($data,$item->id,$level+1);//递归
$arr = array_merge($arr,$res);
}
}
return $arr;
}
}
列表模板
<div class="portlet box blue ">
<div class="portlet-title">
<div class="caption"><i class="icon-cogs"></i>分类列表</div>
</div>
@if(session()->has("errormsg"))
<div class="alert alert-error ">
<button class="close" data-dismiss="alert"></button>
<span>{{ session("errormsg") }}</span>
</div>
@endif
@if(session()->has("success"))
<div class="alert alert-success ">
<button class="close" data-dismiss="alert"></button>
<span>{{ session("success") }}</span>
</div>
@endif
<div class="portlet-body">
<table class="table table-hover ">
<thead>
<tr>
<th class="text-center">ID</th>
<th class="text-center">分类名称</th>
<th class="text-center">父ID</th>
<th class="text-center">排序</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td class="text-center">{{ $item->id }}</td>
<td class="text-center">{{ ($item->level == 0 ? "": "|") }}{{ str_repeat("----",$item->level) }}{{ $item->name }}</td>
<td class="text-center">{{ $item->pid }}/{{ $item->level }}</td>
<td class="text-center"class="hidden-480">{{ $item->sort }}</td>
<td class="text-center">
<a href="#" class="btn mini red"><i class="icon-trash"></i> 删除</a>
<a href="#" class="btn mini blue"><i class=" icon-pencil"></i> 修改</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
添加模板
<form action="?" class="form-horizontal" method="post">
@csrf
<div class="control-group">
<label class="control-label">分类名称</label>
<div class="controls">
<input type="text" name="cname" class="span6 m-wrap" />
</div>
</div>
<div class="control-group">
<label class="control-label">上级分类</label>
<div class="controls">
<select class="span6 m-wrap" name="pid" id="pid" data-placeholder="Choose a Category" tabindex="1">
<option value="0">顶级栏目</option>
@foreach($list as $res)
<option value="{{ $res->id }}">{{ ($res->level == 0 ? "": "|") }}{{ str_repeat("----",$res->level) }}{{ $res->name }}</option>
@endforeach
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">排序</label>
<div class="controls">
<input type="text" name="sort" placeholder="100" class="span6 m-wrap" />
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn blue">添加</button>
</div>
</form>
网友评论