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
每个模型都可以通过 POST、PUT、PATCH 和 DELETE 进行写入,包括嵌套子操作;读取操作是渲染的列表和记录页面。写入操作是 CSRF 保护的,表单和 API 共享由您的模式定义的验证。
4.3: 外观和感觉
CMS 作为资源提供主题和过渡。应用程序通过 prop theme 和 prop 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'),
),
]
小部件类型:bar、gauge、line、list 和 pie。列出您在 resources 中使用的类型(widgets/bar 等),并为图表类型添加 chart.js。一个 order: 键用于在模型之间对小部件进行排序。