甜1s/moonshine-database

Moonshine 数据库

1.0.0 2023-08-05 17:55 UTC

This package is auto-updated.

Last update: 2024-09-05 20:25:53 UTC


README

描述

Moonshine 数据库管理器包是 Moonshine 管理面板的一个强大扩展,它通过管理界面直接实现无缝数据库管理。此 Laravel 包通过允许管理员无需复杂的 SQL 查询或外部工具即可轻松与底层数据库交互,增强了 Moonshine 管理面板的功能。

功能

  • 直观界面:该包与 Moonshine 管理面板无缝集成,提供用户友好的界面来管理数据库。管理员可以轻松执行数据库记录的 CRUD(创建、读取、更新、删除)操作。
  • 用户权限:使用强大的用户权限设置来控制对数据库管理器的访问。定义哪些管理员可以查看、编辑或删除数据库记录和表。
  • 简单安装:该包易于安装和配置。

安装

  1. 通过 composer 安装包
composer require sweet1s/moonshine-database
  1. 发布配置文件
php artisan vendor:publish --provider="Sweet1s\MoonShineDatabase\Providers\MoonShineDatabaseServiceProvider"
  1. 将项目添加到您的 MoonShineServiceProvider 文件中,如下所示
public function boot(): void
    {
        app(MoonShine::class)->menu([
            ...
            \Sweet1s\MoonShineDatabase\Menu\DatabaseItem::make(),
            ...
        ]);
    }

身份验证

为了使用身份验证,Moonshine 数据库依赖于 Laravel Gate 系统。要启用此功能,您需要在 AuthServiceProvider 中添加以下代码并实现您自己的授权逻辑。首先,您应该在 moonshine-database.php 配置文件中将 auth 参数设置为 true。以下是一个代码示例

在您的 config/moonshine-database.php 文件中

...
'auth' => [
    'enable' => true
],
...

在您的 app/Providers/AuthServiceProvider.php 文件中

<?php

namespace App\Providers;

use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;use Illuminate\Support\Facades\Gate;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        ...
        foreach (config('moonshine-database.auth.permissions') as $key => $value) {
            Gate::define($value, function ($user) use ($value) {
                // Here you can implement your own authorization logic

                // I use spatie/laravel-permission package, so I can do like this:
                return $user->role->hasPermissionTo($value);
            });
        }
    }
}

它在管理面板中看起来怎么样?

索引页 Index Page

编辑页 Edit Page

创建页 Create Page