• 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

    添加菜单

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

  • 相关阅读:
    都是经理,多出“项目”两个字薪资就高出这么多?
    Matlab: Metropolis-Hastings算法的实现分布采样
    视频gif怎么制作?一招教你视频制作gif
    人工智能在教育上的应用2-基于大模型的未来数学教育的情况与实际应用
    AJAX概念
    sql力扣刷题六
    ROS Costmap 插件
    声网SDK使用笔记
    如何降低云计算成本?
    图解 LeetCode 算法汇总——回溯
  • 原文地址:https://blog.csdn.net/u010212601/article/details/126518584