lab1353/monkyz

该包已被废弃,不再维护。未建议替代包。

Laravel 5 的动态和自主管理面板

安装: 92

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

语言:CSS

类型:项目

1.0.13 2017-09-26 10:07 UTC

This package is auto-updated.

Last update: 2023-02-03 00:28:08 UTC


README

Monkyz

screenshot

monkyz logo Monkyz :: 动态管理面板

lab1353 Total Downloads Latest Stable Version Latest Unstable Version License

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):强制使用 https
  • use_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:表格标题
  • iconfontawesome 图标
  • 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_typeinput_from_name 参数更为重要。

!!! 注意 !!! Monkyz 当前仅支持一对一和一对多关系。所有多对多关系表都必须在 配置文件 monkyz-tables.php 中定义,并将参数 visible 设置为 false

身份验证

您可以选择是否使用身份验证来访问管理面板。您可以在配置文件 file monkyz.php 中使用 use_auth 参数定义它。

如果 use_auth 参数是 true,则 Monkyz 使用 Laravel 身份验证。如果您想使用身份验证,可以运行 artisan 命令 php artisan make:auth

否则,如果 use_authfalse,则对 Monkyz 的访问是自动的。

Artisan 命令

monkyz:tables

Monkyz 提供了 artisan 命令

php artisan monkyz:tables

此命令允许您自动填充 monkyz-tables.php 配置文件

它将自动创建所有必要的引用以供 Monkyz 使用数据库结构。不会覆盖已输入的参数:仅添加未设置的参数。

自定义

自定义字段

Monkyz 允许在记录的编辑页面创建自定义字段类型。

创建方法如下

  1. 如果您尚未这样做,则发布视图
php artisan vendor:publish --provider="Lab1353\Monkyz\Providers\MonkyzServiceProvider"

以下命令将发布视图文件到: /resources/views/vendor/monkyz

  1. 转到 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
  1. 根据您的喜好编辑新文件。请注意,以下变量将被传递
  • $field:数据库列名
  • $record:Eloquent模型(要获取字段的值,请使用: $record->field
  • $params:字段参数数组
  1. 现在您可以使用个人类型的字段,设置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上。

工具

版权和许可

Monkyzlab1353Daniele Montecchi编写。

Monkyz在MIT许可下发布。有关详细信息,请参阅LICENSE.md文件