任务35:初始化分类模块
一、创建文章分类cate模型、迁移文件、控制器,验证器
1,创建模型同时创建迁移文件
php artisan make:model models/Admin/Cate -m
如图示

2,创建cate控制器,验证器的命令行命令分别是
php artisan make:controller Admin/CateController
和
php artisan make:request CateRequest
如下图示

3,复制 User 控制器 App\Http\Controllers\Admin\UserController.php 上所有的方法到 App\Http\Controllers\Admin\CateController.php 上并把上面的 User 和 admin.user 替换为 Cate 和 admin.cate 。CateController.php 编辑后的代码如下
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\models\Admin\Cate; use Illuminate\Http\Request; class CateController extends Controller { //文章分类 public function index(){ $data = Cate::paginate(5);//获取用户表数据并分页,每页展示 5 条记录 return view('admin.cate.index',compact('data'));//compact()是分配数据 } public function add(){ return view('admin.cate.add'); } public function addSave(CateRequest $request){//Request $request 依赖注入 //dd($request->all()); //打印接收到的数据 $Cate = Cate::create($request->all()); //Cate模型create对象往数据表添加数据 $Cate->password = bcrypt($request->input('password'));//bcrypt()是加密函数 if($Cate->save()){ return redirect()->route('admin.cate.index')->with('success-msg','添加用户成功!'); }else{ return redirect()->route('admin.cate.index')->with('danger-msg','添加用户失败!'); } } public function edit(int $id){//$id是接收到的ID $Cate = Cate::find($id);//通过ID在数据库查找对应用户信息 return view('admin.cate.edit',compact('Cate')); //compact('Cate')是分配数据到模板 } public function editSave(CateRequest $request,int $id){ //方法一,更新数据update() // $update = Cate::find($id)->update($request->all()); //dd($update); //方法二,保存数据save() $Cate = Cate::find($id); $Cate -> Catename = $request->input('Catename'); $Cate->password = bcrypt(trim($request->input('password'))); if($Cate->save()){ return redirect()->route('admin.cate.index')->with('success-msg','修改用户成功!'); }else{ return redirect()->back()->with('danger-msg','修改用户失败!'); } } public function delete(Request $request,int $id){ $del = Cate::destroy($id); if($del){ return redirect()->back()->with('success-msg','删除用户成功!'); }else{ return redirect()->back()->with('danger-msg','删除用户失败!'); } } }
4,在 \resources\views\Admin\Cate 下新建 Cate 的3个模板文件 index.blade.php, edit.blade.php , add.blade.php。并复制 \resources\views\Admin\User 下的3个模板的内容 来替换。

5,修改 \resources\views\Admin\Cate\index.blade.php 模板,暂时删除 <tbody> </tbody>标签之间的内容,分页调用代码 {{$data -> links()}} 也暂时删除 。
6,编辑 \routes\web.php 路由, 新增 Cate 文章分类 【也叫栏目列表】的路由 ,直接加在后台 路由分组 内,管理员路由 后面 如下
//栏目列表 Route::get('cate',"CateController@index")->name("admin.cate.index"); //栏目添加界面 Route::get('cate/add',"CateController@add")->name("admin.cate.add"); //栏目添加处理 Route::post('cate/add',"CateController@addSave")->name("admin.cate.add"); //栏目修改界面 Route::get('cate/edit/{id}',"CateController@edit")->name("admin.cate.edit")->where(['id'=>'\d+']); //栏目修改处理 Route::post('cate/edit/{id}',"CateController@editSave")->name("admin.cate.edit")->where(['id'=>'\d+']); //栏目删除 Route::get('cate/delete/{id}',"CateController@delete")->name("admin.cate.delete")->where(['id'=>'\d+']);
7,\resources\views\Admin\Layout\main.blade.php 编辑公共模板main.blade.php 新增如下代码 在左侧导航栏的<ul></ul>中
<li> <a href="#" class="menu-dropdown"> <i class="menu-icon fa fa-align-right"></i> <span class="menu-text">栏目管理</span> <i class="menu-expand"></i> </a> <ul class="submenu"> <li> <a href="{{route('admin.cate.index')}}"> <span class="menu-text">栏目列表</span> <i class="menu-expand"></i> </a> </li> <li> <a href="{{route('admin.cate.add')}}"> <span class="menu-text">栏目添加</span> <i class="menu-expand"></i> </a> </li> </ul> </li>
效果如下

8,浏览器 访问 栏目列表 http://laravel.pensive.top/admin/cate 前,可暂时将控制器CateController.php 的index()方法 原先的先注释 改为 简单的 展示模板,不然会报 没有Cate数据表的错,因为当前还没有创建有Cate数据表
public function index(){ // $data = Cate::paginate(5);//获取用户表数据并分页,每页展示 5 条记录 //return view('admin.cate.index',compact('data'));//compact()是分配数据 return view('admin.cate.index'); }
END

浙公网安备 33010602011771号