4: 管理员和 API

通过声明模型和菜单,CMS 提供了完整的管理界面和匹配的 REST API。

4.1: URLs

路径 显示
/articles 模型的列表(菜单 uri
/article/5 一条记录及其关系
/create/article 创建表单
/change/article/5 编辑表单
/api/... 相同资源的 JSON API

列表和记录的 URI 来自每个模型的表名(或其 uriList / uriRecord 重写),侧边栏的 uri 应该匹配。

4.2: 写入 API

每个模型都可以通过 POSTPUTPATCHDELETE 进行写入,包括嵌套子操作;读取操作是渲染的列表和记录页面。写入操作是 CSRF 保护的,表单和 API 共享由您的模式定义的验证。

4.3: 外观和感觉

CMS 作为资源提供主题和过渡。应用程序通过 prop themeprop trans 选择默认值,用户可以在运行时切换。由于整个管理界面是生成的,重新样式是主题选择,而不是模板重写。

4.4: 认证是可选的

CMS 不强制进行身份验证。生产环境的 Dashboard 在其上层叠加了 auth(登录、角色、每个模块的权限);像演示那样的小型内部工具可以开放运行。当您需要访问控制时,添加 auth 资源并对路由进行限制。

4.5: 仪表板小部件

CMS首页不仅仅是一个菜单。每个模型都可以在其上固定小部件,因此仪表板作为其背后数据的实时概览打开。小部件是模型上的一个 static objWidgets,以标题为键,具有类型和它绘制的数据:

static objWidgets => [
	'Articles' => obj (
		type: 'gauge',
		data: static::item(columns: 'COUNT(id)'),
	),
	'Price per plan' => obj (
		type: 'bar',
		data: static::pair(columns: 'name, price', order: 'price ASC'),
	),
]

小部件类型:bargaugelinelistpie。列出您在 resources 中使用的类型(widgets/bar 等),并为图表类型添加 chart.js。一个 order: 键用于在模型之间对小部件进行排序。

我们使用必要的cookie来使该网站正常工作。在您的许可下,我们还使用分析工具来改善网站。