dcat笔记

一,修改系统自带的表和页面
  • 环境:laravel9+dcat2+php8.2

此处我想修改admin_users表,添加一个park_id 关联到parks表,须要修改管理员页面
使用继承重写的思路,最好不要直接去修改vendor包里面的dcat源码,只需要找到相应位置,然后复制过来,重写即可。
新建一个model

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Dcat\Admin\Models\Administrator as AdminUser;
class Administrator extends AdminUser
{

    public function __construct( array $attributes = [] ) {
        array_push( $this->fillable, 'park_id' );
        parent::__construct( $attributes );
    }
    //定义模型关联关系
    public function park()
    {
        return $this->belongsTo(Park::class);
    }
}

新建一个controller

<?php

namespace App\Admin\Controllers;

use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\UserController;
use Dcat\Admin\Http\Repositories\Administrator;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Models\Administrator as AdministratorModel;
use Illuminate\Support\Facades\Log;

class AdministratorController extends UserController
{
    protected function grid()
    {	
    	//这里使用我定义的
        return Grid::make(\App\Models\Administrator::with(['roles','park']), function (Grid $grid) {
            $grid->column('id', 'ID')->sortable();
            $grid->column('username');
            $grid->column('name');

            if (config('admin.permission.enable')) {
                $grid->column('roles')->pluck('name')->label('primary', 3);

                $permissionModel = config('admin.database.permissions_model');
                $roleModel = config('admin.database.roles_model');
                $nodes = (new $permissionModel())->allNodes();
                $grid->column('permissions')
                    ->if(function () {
                        return ! $this->roles->isEmpty();
                    })
                    ->showTreeInDialog(function (Grid\Displayers\DialogTree $tree) use (&$nodes, $roleModel) {
                        $tree->nodes($nodes);

                        foreach (array_column($this->roles->toArray(), 'slug') as $slug) {
                            if ($roleModel::isAdministrator($slug)) {
                                $tree->checkAll();
                            }
                        }
                    })
                    ->else()
                    ->display('');
            }
            $grid->column( 'park.park', '园区' );
            $grid->column('created_at');
            $grid->column('updated_at')->sortable();

            $grid->quickSearch(['id', 'name', 'username']);

            $grid->showQuickEditButton();
            $grid->enableDialogCreate();
            $grid->showColumnSelector();
            $grid->disableEditButton();

            $grid->actions(function (Grid\Displayers\Actions $actions) {
                if ($actions->getKey() == AdministratorModel::DEFAULT_ID) {
                    $actions->disableDelete();
                }
            });
        });
    }
    public function form() {
        $f = parent::form();
        $f->text( 'park_id' );
        return $f;
    }
    public function update($id)
    {
        Log::info("这里编辑");
        return $this->form()->update($id);
    }

}

重新定义路由

$router->resource('auth/users', \App\Admin\Controllers\AdministratorController::class)->middleware(config('admin.route.middleware'));

相关推荐

  1. dcat笔记

    2024-04-01 23:24:10       37 阅读
  2. dcat admin + dingo + nginx 开发前台

    2024-04-01 23:24:10       61 阅读
  3. 图像哈希:DCT

    2024-04-01 23:24:10       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-01 23:24:10       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-01 23:24:10       97 阅读
  3. 在Django里面运行非项目文件

    2024-04-01 23:24:10       78 阅读
  4. Python语言-面向对象

    2024-04-01 23:24:10       88 阅读

热门阅读

  1. 常用的设计模式(单例模式和工厂模式)

    2024-04-01 23:24:10       40 阅读
  2. 使用 SQLite数据库,磁盘数据库,也叫本地数据库

    2024-04-01 23:24:10       38 阅读
  3. 关于过四级的一些神级技巧

    2024-04-01 23:24:10       37 阅读
  4. FastAPI+React全栈开发12 搭建FastAPI开发环境

    2024-04-01 23:24:10       34 阅读
  5. 规则引擎QLExpress和Drools的对比

    2024-04-01 23:24:10       39 阅读
  6. 5.控制结构,if、switch、for的使用【go】

    2024-04-01 23:24:10       29 阅读