lab1353 / monkyz
Laravel 5 的动态和自主管理面板
Requires
- php: >=5.5.9
- anlutro/l4-settings: ^0.4.9
- illuminate/database: ~5.2
- illuminate/support: ~5.2
- intervention/image: 2.*
- spatie/laravel-analytics: ^2.3
README
Monkyz :: 动态管理面板
Monkyz 是一个为 Laravel 5.2 定制的动态和自主管理面板。
它通过为现有数据库创建完整的 CRUD 管理来适应任何现有表。无需配置:无需编写任何代码,您的控制面板即可投入使用。
目录
要求
要求如下
- PHP >= 5.5.9
- Laravel 5.2
安装
首先,通过 Composer 引入包
php composer.phar require lab1353/monkyz
或者,对于最新版本,在开发中(可能不稳定)
php composer.phar require lab1353/monkyz:dev-master
然后,在 config/app.php
中包含服务提供者
'providers' => [ Lab1353\Monkyz\MonkyzServiceProvider::class, ];
最后,发布资源
php artisan vendor:publish --provider="Lab1353\Monkyz\MonkyzServiceProvider"
此命令将发布
- 视图在:
resources/views/vendor/monkyz/
- 配置文件:
config/
- 资源:
public/vendor/monkyz/
一般信息
资源文件
文件 css/monkyz.min.css
是由 SCSS 文件生成的。如果您对更改 SCSS 源文件感兴趣,可以在这里找到:vendor/lab1353/monkyz/resources/assets/scss/
。
文件 public/vendor/monkyz/js/monkyz.min.js
已压缩。原始文件在:vendor/lab1353/monkyz/resources/assets/js/
。
表关系
表之间的关系必须遵循 Eloquent 强制的方向。有关更多信息,请参阅Eloquent:关系部分
Monkyz 当前仅支持一对一和多对一关系。
配置
文件 monkyz.php
文件 config/monkyz.php
包含了 Monkyz 的配置详细信息
prefix
:访问 Monkyz 的 URL 前缀use_https
(true|false):强制使用 httpsuse_auth
(true|false):Laravel 认证,否则自动访问面板cache_minutes
:缓存持续时间的分钟数path_public_temp
:文件夹名称,位于public
路径下,用于临时文件vendors
:定义 供应商资产 版本的数组
文件 monkyz-tables.php
config/monkyz-tables.php
文件包含生成数据库结构动态配置的参数
input_from_type
:根据数据库中定义的字段类型查找相关输入的数组input_from_name
:根据字段名称查找相关输入的数组fields_name_hide_in_edit
:将在编辑时隐藏的字段名称的数组(例如:created_at、updated_at、deleted_at)tables
:查看详情
此文件可以使用 Artisan 命令 monkyz:generate-db
自动生成
参数 tables
tables
参数是动态数据库结构的覆盖数组
'table_name' => [ // name of table in db 'title' => 'Table', 'icon' => 'fa fa-table fa-fw', 'visible' => true, 'ajax_list' => false, 'fields' => [ 'field_name' => [ // name of field in db 'title' => 'Column', 'input' => 'text', 'order' => 'asc', 'in_list' => true, 'in_edit' => true, 'enum' => [ 'attr' => 'value' ] 'file' => [ 'disk' => 'local', 'path' => 'uploads/', 'overwrite' => true, 'resize' => false, 'resize_height_px' => 1000, 'resize_width_px' => 1000, ], 'relation' => [ 'table' => 'table2', 'field_value' => 'id', 'field_text' => 'name', ], 'attributes' => [ 'attr' => 'value' ] ] ] ],
表参数
title
:表格标题icon
:fontawesome 图标visible
(true|false):表格在侧边栏菜单中的可见性ajax_list
(true|false):定义是否激活 Ajax 分页和筛选fields
:表格中的字段列表
字段参数
title
:列标题input
:此参数的值包括block
:显示格式化文本的<pre>
块checkbox
:true/false 复选框color
:十六进制颜色选择器(详情见:W3C HTML 表单)date
:仅日期标签(详情见:W3C HTML 表单)datetime
:日期和时间(详情见:W3C HTML 表单)editor
:简单的 wysiwyg 编辑器(使用 Bootstrap3 Wysiwyg)enum
:用于枚举的 select 框(必须定义enum
参数)file
:文件上传(必须定义file
参数)hidden
:隐藏字段,默认用于主键字段image
:仅图像的文件上传(接受扩展名:.jpg, .jpeg, .png)(必须定义file
参数)number
:数字标签(详情见:W3C HTML 表单)relation
:与另一张表的关联的 select 框(必须定义relation
参数)tel
:电话号码(详情见:W3C HTML 表单)text
:字符串的文本标签textarea
:textarea 标签url
:url 标签(详情见:W3C HTML 表单)- (您可以创建 您自己的自定义字段)
order
: (null|asc|desc) 定义默认的表格排序in_list
(true|false):列表中的可见性in_edit
(true|false):编辑和添加记录中的可见性enum
:用于填充下拉框的数组'key' => 'value'
file
:文件/图片字段详情disk
:用于Storage
类的磁盘名称,配置在配置文件filesystems.php
中(更多信息请参见 Laravel 文件系统文档)。如果没有指定,则使用默认磁盘。path
:上传图片的相对路径overwrite
(true|false):如果文件已存在则覆盖resize
(true|false):如果字段是图片,则确定是否调整上传图片的大小resize_height_px
:调整图片的高度像素resize_width_px
:调整图片的宽度像素
relation
:关系字段详情table
:关系表的名称field_value
:关系表值字段的名称field_text
:关系表文本字段的名称
attributes
:输入中额外属性数组 ('key' => 'value'
)
在自动搜索字段输入类型时,相对于 input_from_type
,input_from_name
参数更为重要。
!!! 注意 !!! Monkyz 当前仅支持一对一和一对多关系。所有多对多关系表都必须在 配置文件
monkyz-tables.php
中定义,并将参数visible
设置为false
。
身份验证
您可以选择是否使用身份验证来访问管理面板。您可以在配置文件 file monkyz.php
中使用 use_auth
参数定义它。
如果 use_auth
参数是 true
,则 Monkyz 使用 Laravel 身份验证。如果您想使用身份验证,可以运行 artisan 命令 php artisan make:auth
。
否则,如果 use_auth
是 false
,则对 Monkyz 的访问是自动的。
Artisan 命令
monkyz:tables
Monkyz 提供了 artisan 命令
php artisan monkyz:tables
此命令允许您自动填充 monkyz-tables.php
配置文件。
它将自动创建所有必要的引用以供 Monkyz 使用数据库结构。不会覆盖已输入的参数:仅添加未设置的参数。
自定义
自定义字段
Monkyz 允许在记录的编辑页面创建自定义字段类型。
创建方法如下
- 如果您尚未这样做,则发布视图
php artisan vendor:publish --provider="Lab1353\Monkyz\Providers\MonkyzServiceProvider"
以下命令将发布视图文件到: /resources/views/vendor/monkyz
- 转到
resources/views/vendor/monkyz/
文件夹并创建一个新的 文件 blade,指定它为您的新的字段(例如:custom
)
cd resources/views/vendor/monkyz
touch custom.blade.php
您可以使用 css
部分添加 css 引用
@section('css')
@parent
<link rel="stylesheet" href="..." />
@endsection
或使用 scripts
部分添加 js
@section('scripts')
@parent
<script type="text/javascript" src="..."></script>
@endsection
- 根据您的喜好编辑新文件。请注意,以下变量将被传递
$field
:数据库列名$record
:Eloquent模型(要获取字段的值,请使用:$record->field
)$params
:字段参数数组
- 现在您可以使用个人类型的字段,设置
input
字段的参数
'table_name' => [ // name of table in db 'fields' => [ 'field_name' => [ // name of field in db 'input' => 'custom', // <-- change 'custom' with your custom field name
Google Analytics
在仪表板上,您可以查看从Google Analytics获取的统计数据。
Monkyz使用了需要特定配置才能从Google Analytics检索数据的spatie/laravel-analytics包。
您必须遵循官方指南来创建文件storage/app/laravel-google-analytics/service-account-credentials.json
。创建文件后,在设置页面中设置viewId
参数。
故障排除
要报告问题,请使用GitHub Issues。
有关常见问题的帮助,请参阅ISSUES.md
。
变更日志
请参阅CHANGELOG.md
以获取有关最近更改的更多信息。
面向未来
- Laravel 5.4的兼容性
- 导入/导出配置
- 在模型中管理useSoftDelete
- 访问部分的权限
- 字段的Laravel验证规则
- 多文件上传
致谢
链接
供应商
Monkyz使用了以下CSS/JS:
所有供应商文件都加载在CDN上。
工具
版权和许可
Monkyz由lab1353的Daniele Montecchi编写。
Monkyz在MIT许可下发布。有关详细信息,请参阅LICENSE.md
文件。