• Laravel 博客开发|后台项目管理


    在博客应用中,除了展示文章外,还展示项目,文章和项目都是在管理后台管理的,现在要实现在后台管理项目管理

    添加路由

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

    $router->resource('projects', 'ProjectsController');
    
    • 1

    控制器

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

    1. 项目列表

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

    protected function grid()
    {
        return Grid::make(new Project(), function (Grid $grid) {
            $grid->column('id')->sortable();
            $grid->column('name');
            $grid->column('cover')->image('',40,40);
            $grid->column('created_at')->sortable();
    
            $grid->filter(function (Grid\Filter $filter) {
                $filter->equal('id');
                $filter->like('name');
    
            });
        });
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

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

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

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

    2. 添加和编辑项目

    ProjectsController控制器中,form方法对应的是添加和编辑项目,修改form方法为如下内容:

    protected function form()
    {
        return Form::make(new Project(), function (Form $form) {
            $form->display('id');
            $form->text('name');
            $form->text('description');
            $form->image('cover')->saveFullUrl();
    
            $form->display('created_at');
            $form->display('updated_at');
        });
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    上面代码中,使用 image方法渲染表单中 cover字段为图片上传,图片上传成功后,图片上传到 storage/app/public/images目录下,HTTP 服务器指向的根目录是 public目录,要想用户能通过浏览器访问 storage 目录下的文件,需要创建一个软链接,Laravel 内置了这个命令:

     php artisan storage:link
    
    • 1

    现在图片还是不会显示出来,因为图片地址不对,现在要修改 .env文件,将 APP_URL修改为域名。
    .env

    .
    .
    .  
    APP_URL=http://blog.test
    .
    .
    .  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    添加菜单

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

  • 相关阅读:
    awvs 中低危漏洞
    MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square 论文翻译
    记录一次数据库变更失败
    【计算机网络】网络层——IP协议
    每周都知道|工业互联网领域热点资讯 (10月2期)
    Mysql之正则函数REGEXP的使用,适合复杂查询条件
    一文看懂 C 语言 I/O
    Redis 6.0学习指南
    国庆放假作业5
    视频编码基础知识
  • 原文地址:https://blog.csdn.net/u010212601/article/details/126518402