• Laravel 博客开发|管理后台里程碑管理


    前面已经实现在管理后台的项目管理,现在来实现管理后台的项目里程碑管理。

    添加路由

    修改后台路由 app/Admin/routes.php文件,添加如下路由:

    $router->resource('milestones', 'MilestonesController');
    
    • 1

    控制器

    使用代码生成器生成 MilestonesController.php 控制器文件。

    1. 里程碑列表

    MilestonesController控制器中,grid方法对应的是项目列表,修改 grid方法:

    protected function grid()
    {
        return Grid::make(Milestone::with(['project']), function (Grid $grid) {
            $grid->column('id')->sortable();
            $grid->column('title');
            $grid->column('project.name','项目');
            $grid->column('created_at')->sortable();
    
            $grid->filter(function (Grid\Filter $filter) {
                $filter->equal('id');
                $filter->like('title');
    
            });
        });
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    上面代码中,使用 image方法显示图片,设置高和宽为 40。

    修改Milestone模型,引入 HasDateTimeFormatter 解决时间显示不对的问题:

     namespace App\Models;
    
    use Dcat\Admin\Traits\HasDateTimeFormatter;
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Eloquent\Model;
    
    class Milestone extends Model
    {
        use HasFactory;
        use HasDateTimeFormatter;
        public function project(){
            return $this->belongsTo(Project::class);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2. 添加和编辑里程碑

    MilestonesController控制器中,form方法对应的是添加和编辑里程碑,修改form方法为如下内容:

    protected function form()
    {
        $projects = Project::pluck('name','id');
        return Form::make(new Milestone(), function (Form $form) use($projects) {
            $form->display('id');
            $form->select('project_id')->options($projects);
            $form->text('title');
            $form->text('content');
    
            $form->display('created_at');
            $form->display('updated_at');
        });
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    添加菜单

    为了方便管理,打开菜单,在内容管理菜单下面添加一个里程碑管理菜单。

  • 相关阅读:
    axios从入门到源码分析之axios 源码分析(二)
    Win10下CUDA版OpenCV的编译过程
    力扣(LeetCode)31. 下一个排列(C语言)
    GDP-L-岩藻糖,鸟苷二磷酰岩藻糖,Guanosine 5′-diphospho-β-L-fucose sodium salt
    Java面试题(持续更新)
    仿射密码 affine
    企业应用系统 PHP项目支持管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页
    opencv-python之图像的基本表示形式
    力扣刷题 day46:10-16
    C# 自定义事件
  • 原文地址:https://blog.csdn.net/u010212601/article/details/126518584