morningtrain / wp-database-model-admin-ui
自动生成的Wordpress管理表,适用于Eloquent模型
Requires
- morningtrain/php-loader: ^0.3
- morningtrain/wp-database: ^0.3
- morningtrain/wp-hooks: ^0.3.2
- morningtrain/wp-view: ^0.4.1
Requires (Dev)
- laravel/pint: ^1.4
README
自动生成的Wordpress管理表,适用于Eloquent模型。
目录
简介
轻松创建WordPress管理表的CRUD。
概述:使用Eloquent模型的数据创建WordPress管理表。
创建:允许从ACF组创建Eloquent模型的新实例。
读取:创建一个视图页面,显示实例的数据。
更新:允许从ACF组更新Eloquent模型的实例。
删除:允许删除Eloquent模型的实例。
重要:
要使“创建”和“更新”部分工作,您需要ACF(高级自定义字段)。
入门
如需入门,请按以下方式安装包:安装部分所述。
要使用此工具,请参阅使用方法
安装
使用Composer安装
composer require morningtrain/wp-database-model-admin-ui
依赖关系
使用方法
初始化包
使用包含所有Eloquent模型的文件夹初始化 \Morningtrain\WP\DatabaseModelAdminUi\ModelUI
。
\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::setup(__DIR__ . "/app/Models");
用于Eloquent模型
当需要显示Eloquent模型的管理表时,需要在其中进行注册。
为此,在每个模型类中,将调用一个静态方法,称为 setupAdminUi
。
首先,使用 \Morningtrain\WP\DatabaseModelAdminUi\ModelUI::modelPage()
方法,并给它一个别名和一个Eloquent模型类。
包装方法有以下参数
字符串 $slug
字符串 $model
完成此操作后,我们需要进行注册。这是通过以下方式完成的
\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::modelPage(string, string) ->register();
这就是开始使用管理表概览的全部内容。
这将显示包含所有列的管理表概览。
ModelPage可以通过不同的事情进行自定义。要查看所有设置的列表,请参阅ModelPage。
类
ModelPage
页面标题
为管理表设置页面标题的值。
默认值:管理表
->withPageTitle(string)
菜单标题
为管理表设置菜单标题的值。
默认值:管理表
->withMenuTitle(string)
能力
设置用户查看管理表所需的价值。
默认值:manage_options
->withCapability(string)
图标URL
为管理表设置管理菜单图标的价值。
默认值:空值
->withIconUrl(string)
位置
为管理表设置管理菜单位置的价值。
默认值:null
->withPosition(int)
搜索按钮文本
为管理表设置搜索按钮文本的值。
默认值:__('Search')
->withSearchButtonText(string)
列
设置管理表的列的值。
默认值:模型上的所有列
这个值接受一个Column
类的数组。Column
可以通过不同的事情进行自定义。要查看所有设置的列表,请参阅Column。
->withColumns(array)
行操作
为管理表设置行操作的值。
默认值:[]
如果使用方法 ->withViewPage()
,则将为每一行添加默认的 查看 动作。
如果使用方法 ->withAcfEditPage()
,则将为每一行添加默认的 编辑 动作。
如果使用方法 ->makeRemovable()
,则将为每一行添加默认的 删除 动作。
此方法接受一个包含 RowAction
类的数组。RowAction
可以进行自定义,具有不同的选项。要查看所有设置的列表,请参阅 RowAction。
->withRowActions(array)
修改查询回调
返回修改后的 callback|string
的 \Illuminate\Database\Eloquent\Builder
。
默认值:null
回调中的参数
\Illuminate\Database\Eloquent\Builder $query
->withModifyQueryCallback(\Illuminate\Database\Eloquent\Builder)
管理表视图
设置管理表视图。
默认值:[]
此方法接受一个包含 AdminTableViews
类的数组。AdminTableViews
可以进行自定义,具有不同的选项。要查看所有设置的列表,请参阅 AdminTableViews。
->withAdminTableViews(array)
您也可以通过使用 ->addAdminTableViewsCallback()
方法来添加视图。在具有动态视图时,应使用此方法以避免在不必要时使用资源。
返回一个包含 AdminTableViews
实例的数组。
默认值:null
回调中的参数
ModelPage $modelPage
AdminTableViews
可以进行自定义,具有不同的选项。要查看所有设置的列表,请参阅 AdminTableViews。
->addAdminTableViewsCallback(callback)
管理表额外标签页
设置管理表额外标签页。
此方法分为两个方法,一个用于顶部,一个用于底部。
默认值:[]
两个方法都接受一个包含 AdminTableExtraTablenav
类的数组。AdminTableExtraTablenav
可以进行自定义,具有不同的选项。要查看所有设置的列表,请参阅 AdminTableExtraTablenav。
->withAdminTableTopExtraTablenavs(array)
->withAdminTableBottomExtraTablenavs(array)
查看页面
为管理表设置查看页面。
默认值:null
此方法接受一个 ViewPage
类的实例。ViewPage
可以进行自定义,具有不同的选项。要查看所有设置的列表,请参阅 ViewPage。
->withViewPage()
ACF 创建页面
为管理表设置 ACF 创建页面。
默认值:null
此方法接受一个 AcfCreatePage
类的实例。AcfCreatePage
可以进行自定义,具有不同的选项。要查看所有设置的列表,请参阅 AcfCreatePage。
->withAcfCreatePage()
ACF 编辑页面
为管理表设置 ACF 编辑页面。
默认值:null
此方法接受一个 AcfEditPage
类的实例。AcfEditPage
可以进行自定义,具有不同的选项。要查看所有设置的列表,请参阅 AcfEditPage。
->withAcfEditPage()
元框
渲染元框。
默认值:null
此方法接受一个包含 MetaBox
类实例的数组。MetaBox
可以进行自定义,具有不同的选项。要查看所有设置的列表,请参阅 MetaBox。
->withMetaBoxes(array)
无列
为管理表设置排除的列值。
默认值:[]
数组中的每个项都是列的 slug。
->withoutColumns(array)
父级 slug
为模型页面设置父级 slug。
默认值:null
->makeSubMenu(string)
可删除
添加可删除选项。
默认值:false
->makeRemovable()
列
要获取 Column
实例,请使用包装方法: \Morningtrain\WP\DatabaseModelAdminUi\ModelUI::column()
。
包装方法有以下参数
字符串 $slug
标题
将值设置为列标题。
默认值:slug,首字母大写
->withTitle(string)
渲染
渲染每个行的 callback|string
,针对特定列。
默认值:输出值
回调中的参数
实例
ModelPage $modelPage
->withRender(callback|string)
可搜索
使列可搜索。它可以接受一个回调函数|string
,可以在自定义列(不在Eloquent模型表上)上执行自己的搜索。
默认值:false
回调中的参数
\Illuminate\Database\Eloquent\Builder $dataQuery
string $searchString
->makeSearchable(callback|string|null)
可排序
使列可排序。它可以接受一个回调函数|string
,可以在自定义列(不在Eloquent模型表上)上执行自己的排序。
默认值:false
回调中的参数
\Illuminate\Database\Eloquent\Builder $dataQuery
string $order
->makeSortable(callback|string|null)
行操作
要获取一个RowAction
实例,请使用包装方法:\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::rowAction()
。
包装方法有以下参数
字符串 $slug
callable|string $renderCallback
:回调函数具有以下参数array $item
ModelPage $modelPage
AdminTableView
要获取一个AdminTableView
实例,请使用包装方法:\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::adminTableView()
。
包装方法有以下参数
string $urlKey
null|string $urlValue
标题
将值设置为视图标题。
默认:urlKey,首字母大写
->withTitle(string)
计数
将值设置为视图计数。
默认值:null
->withCount(string)
计数回调
将回调值设置为视图计数。
默认值:null
回调中的参数
AdminTableView $view
->withCountCallback(callback|string)
AdminTableExtraTablenav
要获取一个AdminTableExtraTablenav
实例,请使用包装方法:\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::adminTableExtraTablenav()
。
包装方法有以下参数
callback|string $renderCallback
视图页面
要获取一个ViewPage
实例,请使用包装方法:\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::viewPage()
。
渲染
在视图页面上渲染回调函数|string
。
默认:显示一个包含所有数据的表格
回调中的参数
array $data
$currentModelPage
->withRender(callback|string)
能力
将值设置为能力。
默认:ModelPage::capability
->withCapability(string)
隐藏默认视图
隐藏默认视图。
默认:true
->hideDefaultView()
AcfCreatePage
要获取一个AcfCreatePage
实例,请使用包装方法:\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::acfCreatePage()
。
要使此功能正常工作,需要创建一个ACF组,该组包含可以创建的与Eloquent模型类似的字段。
在ACF组位置下,有一个名为Eloquent Model的新规则,应选择它以在创建页面上显示ACF组。
保存回调
当通过ACF更新模型时,调用回调函数|string
。
默认值:null
回调函数|string中的参数
实例
$model
array $values
->withSaveCallback(callback|string)
能力
将值设置为能力。
默认:ModelPage::capability
->withCapability(string)
AcfEditPage
要获取一个AcfEditPage
实例,请使用包装方法:\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::acfEditPage()
。
要使此功能正常工作,需要创建一个ACF组,该组包含可以编辑的与Eloquent模型类似的字段。
在ACF组位置下,有一个名为Eloquent Model的新规则,应选择它以在编辑页面上显示ACF组。
加载字段回调
当在模型上加载字段时,调用AcfLoadField
回调函数|string
。
默认值:[]
它接受一个AcfLoadField
类的数组。AcfLoadField
可以自定义不同的内容。要查看所有设置的列表,请参阅AcfLoadField。
->withLoadFieldCallbacks([])
保存回调
当通过ACF更新模型时,调用回调函数|string
。
默认值:null
回调函数|string中的参数
int|null $modelId
$model
array $values
->withSaveCallback(callback|string)
能力
将值设置为能力。
默认:ModelPage::capability
->withCapability(string)
AcfLoadField
要获取一个AcfLoadField
实例,请使用包装方法:\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::acfLoadField()
。
包装方法有以下参数
字符串 $slug
callable|string $renderCallback
:回调函数具有以下参数mixed $return
字符串 $slug
int $modelId
$model
元框
要获取一个MetaBox实例,请使用包装方法:\Morningtrain\WP\DatabaseModelAdminUi\ModelUI::metaBox()
。
包装方法有以下参数
字符串 $slug
callable|string $renderCallback
:回调函数具有以下参数int|null $modelId
$model
标题
将值设置为元框标题。
默认值:slug,首字母大写
->withTitle(string)
高优先级
将优先级设置为高。默认:默认值
->withHighPriority()
核心优先级
将优先级设置为核心。默认:默认值
->withCorePriority()
低优先级
将优先级设置为低。默认:默认值
->withLowPriority()
侧边栏上下文
将上下文设置为侧边栏。默认:正常
->onSideContext()
在ACF编辑页面上
将元框设置为在ACF编辑页面上渲染。
默认值:管理表
->onAcfEditPage()
贡献
感谢您对项目的贡献兴趣。
错误报告
如果您发现了一个错误,我们鼓励您提交一个拉取请求。
要添加错误报告,请创建一个新的问题。请记住添加一个描述性的标题、详细的描述以及如何重现问题的步骤。
支持问题
我们不提供此包的支持。
拉取请求
- 分支项目
- 创建您的功能分支(git checkout -b feature/AmazingFeature)
- 提交您的更改(git commit -m '添加一些AmazingFeature')
- 将更改推送到分支(git push origin feature/AmazingFeature)
- 打开拉取请求
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。
由