• 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

    添加菜单

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

  • 相关阅读:
    Vue、js底层深入理解笔记(一)
    软件设计模式原则(一)迪米特法则
    不同抓手的码垛机:适配多元应用场景的灵活之选
    DOSBox解决CPU从内存单元中要读取数据
    2024 年天津专升本招生实施办法(天津专升本文化报名考试时间)
    变电站机器人的控制部分
    2019TNF100北京站志愿者
    QtAV环境配置
    Android多线程学习:线程池(一)
    Redis 持久化之RDB操作
  • 原文地址:https://blog.csdn.net/u010212601/article/details/126518584