morningtrain/wp-database-model-admin-ui

自动生成的Wordpress管理表,适用于Eloquent模型

v0.5.2 2023-11-09 11:29 UTC

This package is auto-updated.

Last update: 2024-09-09 13:12:37 UTC


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()

贡献

感谢您对项目的贡献兴趣。

错误报告

如果您发现了一个错误,我们鼓励您提交一个拉取请求。

要添加错误报告,请创建一个新的问题。请记住添加一个描述性的标题、详细的描述以及如何重现问题的步骤。

支持问题

我们不提供此包的支持。

拉取请求

  1. 分支项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m '添加一些AmazingFeature')
  4. 将更改推送到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件



Morningtrain logo