任务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 上并把上面的 Useradmin.user 替换为 Cate admin.cateCateController.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','删除用户失败!');
        }

    }
}
View Code

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

posted @ 2020-05-19 10:29  pensive2019  阅读(228)  评论(0)    收藏  举报