前言:
我们实现的登录功能,接下来就在首页的各个界面配置+分类功能。
1、管理后台主页的HTML配置
删除不需要的模块,仅仅保留四大主要功能模块,并添加点击跳转方法。
2、设置路由
// 资源路由
Route::resource('ad','admin/AdvertController'); // 广告管理
Route::resource('cat','admin/CategoryController'); // 分类管理
Route::resource('pic','admin/PictureController'); // 图片管理
Route::resource('sys','admin/SystemController'); // 系统管理
3、引入视图
分别创建Category
、Advert
、Picture
、System
、文件夹。
可以在浏览器打开 H-ui.admin_v3.1.3.1
相关页面,查看所在的HTML,或者查看网页源码来找到相应的View
。
依次放入项目中,配置HTML里面的资源路径。
// 仅仅举例,所有涉及的都要修改。
// 仅仅举例,点击方法。
4、创建控制器
CategoryController
AdvertController
PictureController
SystemController
因为是资源路由,控制器会自动生成相关方法。
我们在index
方法里面进行主页访问。
public function index(){
return view('system/index'); // 返回各自相关View路径
}
5、访问测试
界面配置OK。
6、分类管理添加功能开发
创建分类的数据表。 对分类管理主页的HTML进行删减,得到我们想要的界面。
通过Form
表单的形式实现添加事件
在Model
类中增加addCat
方法
class Category extends Model{
protected $table = 'sys_category';
protected $autoWriteTimestamp = true;
//添加分类
public function addCat($cat_name,$cat_desc){
$data = ['name'=>$cat_name,
'desc'=>$cat_desc];
if($this->save($data)){
$res = ['status'=>'success','info'=>'分类添加成功'];
}else{
$res = ['status'=>'fail','info'=>'分类添加失败'];
}
return $res;
}
}
在控制器实现Save
方法
public function save(Request $request)
{
// 获取用户提交信息
$cat_name = $request->param('cat_name','');
$cat_desc = $request->param('cat_desc','');
// 数据验证
if(empty($cat_name) || empty($cat_desc) ){
return $this->error("缺少必填参数",'/admin/cat');
}
$category = new Category;
$res = $category->addCat($cat_name,$cat_desc);
if($res['status']=='fail'){
return $this->error($res['info'],'/admin/cat');
}
return $this->success($res['info'],'/admin/cat');
}
7、分类管理数据展示功能开发
在index
方法中对数据库进行查询,通过assign
方法进行数据传递,列表通过volist
方法序列展示。
public function index(){
$category = new Category;
$cats = $category->getAllCat();
if ($cats){
$this->assign('cats',$cats);
}
$catCount = $category->getAllCatCount();
$this->assign('catCount',$catCount);
return view('category/index');
}
在Model
类中
//获取所有分类
public function getAllCat(){
return $this->select()->toArray();
}
在HTML
中
{volist name = "cats" id = "vo"}
{$i}
{$vo.name}
{$vo.desc}
{/volist}
8、分类管理数据修改功能开发
开发思路是:当点击修改数据按钮,我们记录该消息ID并刷新当前页面,将该条信息展示在上方,
增加分类
变为更新分类
。
在HTML
中增加事件处理
{if isset($cat)}
在控制器实现edit
和 update
方法
public function edit($id) {
$category = new Category;
$cat = $category->getOneCat($id);
$cats = $category->getAllCat();
$catCount = $category->getAllCatCount();
$this->assign('cat',$cat);
$this->assign('cats',$cats);
$this->assign('catCount',$catCount);
return view('category/index');
}
public function update(Request $request, $id){
// 获取用户提交信息
$cat_name = $request->param('cat_name','');
$cat_desc = $request->param('cat_desc','');
// 数据验证
if(empty($cat_name) || empty($cat_desc) ){
return $this->error("缺少必填参数",'/admin/cat');
}
$data = ['name'=>$cat_name,
'desc'=>$cat_desc];
$category = new Category;
$res = $category->updateCat($id,$data);
if($res['status']=='fail'){
return $this->error($res['info'],'/admin/cat');
}
return $this->success($res['info'],'/admin/cat');
}
在Model
类中增加updateCat
方法
//更新分类
public function updateCat($id,$data){
if($this->where('id',$id)->update($data)){
$res = ['status'=>'success','info'=>'分类更新成功'];
}else{
$res = ['status'=>'fail','info'=>'分类更新失败'];
}
return $res;
}
9、分类管理数据删除功能开发
开发思路是:当点击删除按钮,提示用户是否删除?删除该条数据,并刷新该页面。
设置路由
Route::get('/cat/del/:id','admin/CategoryController/delete');
在HTML
中增加事件处理
在控制器实现 delete
方法
public function delete($id){
$category = new Category;
$res = $category->deleteCat($id);
return json($res);
}
在Model
类中增加deleteCat
方法
//删除分类
public function deleteCat($id){
if($this->where('id',$id)->delete()){
$res = ['status'=>'success','info'=>'分类删除成功'];
}else{
$res = ['status'=>'fail','info'=>'分类删除失败'];
}
return $res;
}
总结:
这样我们的管理后台首页配置+分类模块已完成。
包括:资源文件导入,后台页面引入+配置,资源路由功能使用,增删改查功能逻辑处理。