Parse table definition to extract module name, model name, table name, and field definitions. First step of CRUD generation.
从用户输入的表定义中提取关键信息。
Table: products
Fields:
- id (primary key)
- name (string, 100, required)
- category_id (foreign key -> categories)
- description (text, nullable)
- price (decimal 10,2, required)
- stock (integer, default 0)
- status (tinyint, default 1)
Table/表名/表,Module/模块,Model/模型,Fields/字段。Fields: 标题,仅用 - 列表表示字段。table,则按命名规则推断 {Module} 与 {Model}。Module/Model,优先使用用户输入(覆盖推断)。table 时必须先向用户确认,不进行推断生成。required 表示 nullable = false,nullable 表示可空;两者都未出现时默认不可空。int/integer、bool/boolean、pk/primary key、fk/foreign key。foreign key -> xxx 解析为 foreignKey 类型,默认 index()。| Variable | Rule | Example |
|---|---|---|
{table} | snake_case plural | products |
{Model} | PascalCase singular | Product |
{Module} | PascalCase | Product |
{module} | snake_case | product |
{resources} | kebab-case plural | products |
{resource} | kebab-case singular | product |
| Input | Type | Length | Required | Default | FK Target |
|---|---|---|---|---|---|
string, 100 | string | 100 | no | null | - |
string, 100, required | string | 100 | yes | null | - |
integer, default 0 | integer | - | no | 0 | - |
foreign key -> categories | foreignKey | - | no | 0 | categories |
decimal 10,2 | decimal | 10,2 | no | null | - |
tinyint, default 1 | tinyint | - | no | 1 | - |
text, nullable | text | - | no | null | - |