launchit/primeoffice

后端生成功能强大的工具

dev-master 2021-06-02 12:50 UTC

This package is auto-updated.

Last update: 2024-09-29 06:08:56 UTC


README

Primeoffice 是后端管理功能强大的工具。使用我们的解决方案,您可以将模型配置为直接用于完全可用的后端。

安装

只需使用 composer 安装 Primeoffice

composer require launchit/primeoffice

之后,您必须在项目中发布配置文件

php artisan vendor:publish --tag=primeoffice

只需运行迁移,您就可以开始配置后端

php artisan migrate

配置文件

Primeoffice 只提供一个配置文件。在文件中,您可以找到一个简单配置示例,该配置将用户模型集成到后端。您可以随时修改它以创建出色的事物;)

return [
    'models' => [
        'User' => \App\Models\User::class,
    ],

    'fields' => [
        'User' => [
            'name' => 'string',
            'is_admin' => 'bool',
            'email' => 'string',
            'password' => 'crypt'
        ],
    ],

    'display' => [
        'User' => [
            'name' => 'Name',
            'is_admin' => 'Admin',
            'email' => 'E-mail',
            'password' => 'Mot de passe'
        ],
    ],

    'modes' => [
        'User' => 'crud',
    ],

    'apparences' => [
        'User' => '<i class="fas fa-users"></i>',
    ]
];

模型

指与后端相关的模型类。

字段

指后端中可以修改的数据库字段。

显示

要在行列表中显示的字段。

模式

描述了对该模型用户分配的权限。

外观

要在模型表示中显示的 fontawesome 图标。

迁移

Primeoffice 包含您见过的最简单的迁移。它只向用户表添加一个 "is_admin" 布尔字段,允许您管理哪些用户可以访问后端。

$this->tyniInteger('is_admin')->default(0);

该字段与中间件一起工作,对于标准用户设置为 0,对于管理员设置为 1,管理员可以查看您的后端。

路由

默认配置,您只有一个简单的路由用于访问后端视图,使用 admin 中间件配置,名为 backoffice.home。

中间件

在包中,您可以找到 "auth.admin" 中间件,用于保护后端访问。它检查由迁移添加的 "is_admin" 字段是否对当前用户为真。您可以在任何想要的地方使用它。

以优雅的方式使用您的模型

您可以直接在类常量中为每个模型添加配置条目。对于前面的配置文件,我们可以在 User 模型中编写

    /**
     * Global access mode for back-office
     *
     * @var array
     */
    public const BACKOFFICE_MODE = 'ru';

    /**
     * Enabled field in back-office
     *
     * @var array
     */
    public const BACKOFFICE_FIELD = [
        'is_admin' => 'bool',
        'name' => 'string',
        'email' => 'string',
    ];
    
    /**
     * Displayable field in back-office
     *
     * @var array
     */
    public const BACKOFFICE_DISPLAY = [
        'is_admin' => 'Admin',
        'name' => 'Nom',
        'email' => 'E-mail',
    ];

然后简单地将其值添加到配置中

'fields' => [
    'User' => User::BACKOFFICE_FIELD
]